Char 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.
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'}.
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
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
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; }
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
123456789101112#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // Change the sixth character `f` to `#` printf("%s\n", str); return 0; }
Tak for dine kommentarer!
Spørg AI
Spørg AI
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
Char 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.
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'}.
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
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
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; }
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
123456789101112#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // Change the sixth character `f` to `#` printf("%s\n", str); return 0; }
Tak for dine kommentarer!