Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Char og Streng | Datatyper og Variabler
C-Grundlæggende

bookChar og Streng

I C findes der ikke en dedikeret datatypen til strenge (tekst). I stedet gemmes tekst som et array af char, hvor hvert element indeholder et enkelt tegn. For eksempel vil teksten c<>definity blive repræsenteret som en sekvens af tegn gemt i et sådant array.

char arr[12] = {'c','<','>','d','e','f','i','n','i','t','y','\0'};

Du bemærker måske, at teksten "c<>definity" har 11 tegn, men arrayet indeholder 12 elementer. Det ekstra element gemmer null-terminatoren \0, som markerer slutningen på en streng i C.

Det er ikke tallet nul, men et specielt, ikke-printbart tegn (ASCII-kode 0), der fortæller programmet, hvor strengen slutter.

Note
Bemærk

Sørg altid for, at dit karakterarray er et element større end teksten, det indeholder, for at gøre plads til denne terminator.

Det er vigtigt at forstå, at 'x' og "x" ikke er det samme.

En streng består af tegn. Husk altid at afslutte en streng med tegnet \0.

  • 'x' er blot en tegnkonstant af typen char;
  • "x" er en streng, et array af char-værdier, eller i dette tilfælde, {'x', '\0'}.
Note
Bemærk

Forveksl ikke '\0', '0' og "0". '\0' er nul-tegnet (ASCII 0), '0' er cifret nul (ASCII 48), og "0" er en streng der indeholder cifret nul plus terminatoren \0.

Strengoutput

I C bruges %s-specifikatoren til at vise strenge (arrays af char-værdier). Denne specifikator instruerer printf()-funktionen om, hvilken type information den skal forvente. Ved at bruge %s informerer vi printf()-funktionen om, at den vil modtage en streng.

main.c

main.c

copy
12345678910
#include <stdio.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%s\n", array); // use %s format specifiers return 0; }

C-sproget indeholder et standard bibliotek til strengmanipulation, <string.h>. I dette bibliotek findes en funktion, der tæller antallet af tegn i en streng:

main.c

main.c

copy
123456789101112
#include <stdio.h> #include <string.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%d\n", strlen(array)); return 0; }
Note
Bemærk

Husk, selv et mellemrum er et tegn og kræver sin egen plads i arrayet. For eksempel: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.

Ved at bruge et indeks kan du tilgå strengens elementer. Da strenge i bund og grund er char-arrays, kan du også ændre individuelle tegn via deres indekser.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // Change the sixth character `f` to `#` printf("%s\n", str); return 0; }
question mark

Hvilken af følgende erklærer korrekt en streng i C?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 2.63

bookChar og Streng

Stryg for at vise menuen

I C findes der ikke en dedikeret datatypen til strenge (tekst). I stedet gemmes tekst som et array af char, hvor hvert element indeholder et enkelt tegn. For eksempel vil teksten c<>definity blive repræsenteret som en sekvens af tegn gemt i et sådant array.

char arr[12] = {'c','<','>','d','e','f','i','n','i','t','y','\0'};

Du bemærker måske, at teksten "c<>definity" har 11 tegn, men arrayet indeholder 12 elementer. Det ekstra element gemmer null-terminatoren \0, som markerer slutningen på en streng i C.

Det er ikke tallet nul, men et specielt, ikke-printbart tegn (ASCII-kode 0), der fortæller programmet, hvor strengen slutter.

Note
Bemærk

Sørg altid for, at dit karakterarray er et element større end teksten, det indeholder, for at gøre plads til denne terminator.

Det er vigtigt at forstå, at 'x' og "x" ikke er det samme.

En streng består af tegn. Husk altid at afslutte en streng med tegnet \0.

  • 'x' er blot en tegnkonstant af typen char;
  • "x" er en streng, et array af char-værdier, eller i dette tilfælde, {'x', '\0'}.
Note
Bemærk

Forveksl ikke '\0', '0' og "0". '\0' er nul-tegnet (ASCII 0), '0' er cifret nul (ASCII 48), og "0" er en streng der indeholder cifret nul plus terminatoren \0.

Strengoutput

I C bruges %s-specifikatoren til at vise strenge (arrays af char-værdier). Denne specifikator instruerer printf()-funktionen om, hvilken type information den skal forvente. Ved at bruge %s informerer vi printf()-funktionen om, at den vil modtage en streng.

main.c

main.c

copy
12345678910
#include <stdio.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%s\n", array); // use %s format specifiers return 0; }

C-sproget indeholder et standard bibliotek til strengmanipulation, <string.h>. I dette bibliotek findes en funktion, der tæller antallet af tegn i en streng:

main.c

main.c

copy
123456789101112
#include <stdio.h> #include <string.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%d\n", strlen(array)); return 0; }
Note
Bemærk

Husk, selv et mellemrum er et tegn og kræver sin egen plads i arrayet. For eksempel: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.

Ved at bruge et indeks kan du tilgå strengens elementer. Da strenge i bund og grund er char-arrays, kan du også ændre individuelle tegn via deres indekser.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // Change the sixth character `f` to `#` printf("%s\n", str); return 0; }
question mark

Hvilken af følgende erklærer korrekt en streng i C?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6
some-alt