Char och Sträng
Svep för att visa menyn
I C finns det ingen särskild datatyp för strängar (text). Istället lagras text som en array av char, där varje element innehåller en enskild tecken. Till exempel skulle texten c<>definity representeras som en sekvens av tecken lagrade i en sådan array.
char arr[12] = {'c','<','>','d','e','f','i','n','i','t','y','\0'};
Du kanske märker att texten "c<>definity" har 11 tecken, men arrayen innehåller 12 element. Det extra elementet lagrar nolltecknet \0, som markerar slutet på en sträng i C.
Det är inte siffran noll, utan ett speciellt, icke-utskrivbart tecken (ASCII-kod 0) som talar om för programmet var strängen slutar.
Se alltid till att din teckenarray är ett element större än texten den innehåller för att rymma detta avslutningstecken.
Det är viktigt att förstå att 'x' och "x" inte är samma sak.
En sträng består av tecken. Kom alltid ihåg att avsluta en sträng med tecknet \0.
'x'är helt enkelt en teckenkonstant av typen char;"x"är en sträng, en array av char-värden, eller i detta fall, {'x', '\0'}.
Blanda inte ihop '\0', '0' och "0".
'\0' är nulltecknet (ASCII 0), '0' är siffran noll (ASCII 48), och "0" är en sträng som innehåller siffran noll plus terminatorn \0.
Strängutmatning
I C används specifikatorn %s för att visa strängar (arrayer av char-värden). Denna specifikator talar om för funktionen printf() vilken typ av information den ska förvänta sig. Genom att använda %s informerar vi printf()-funktionen om att den kommer att ta emot en sträng.
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; }
Språket C innehåller ett standardiserat bibliotek för stränghantering, <string.h>. I detta bibliotek finns en funktion som räknar antalet tecken i en sträng:
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; }
Kom ihåg, även ett mellanslag är ett tecken och kräver en egen plats i arrayen. Till exempel: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.
Genom att använda ett index kan du komma åt strängens element. Eftersom strängar i grunden är char-arrayer kan du även ändra enskilda tecken via deras index.
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; }
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Char och Sträng
I C finns det ingen särskild datatyp för strängar (text). Istället lagras text som en array av char, där varje element innehåller en enskild tecken. Till exempel skulle texten c<>definity representeras som en sekvens av tecken lagrade i en sådan array.
char arr[12] = {'c','<','>','d','e','f','i','n','i','t','y','\0'};
Du kanske märker att texten "c<>definity" har 11 tecken, men arrayen innehåller 12 element. Det extra elementet lagrar nolltecknet \0, som markerar slutet på en sträng i C.
Det är inte siffran noll, utan ett speciellt, icke-utskrivbart tecken (ASCII-kod 0) som talar om för programmet var strängen slutar.
Se alltid till att din teckenarray är ett element större än texten den innehåller för att rymma detta avslutningstecken.
Det är viktigt att förstå att 'x' och "x" inte är samma sak.
En sträng består av tecken. Kom alltid ihåg att avsluta en sträng med tecknet \0.
'x'är helt enkelt en teckenkonstant av typen char;"x"är en sträng, en array av char-värden, eller i detta fall, {'x', '\0'}.
Blanda inte ihop '\0', '0' och "0".
'\0' är nulltecknet (ASCII 0), '0' är siffran noll (ASCII 48), och "0" är en sträng som innehåller siffran noll plus terminatorn \0.
Strängutmatning
I C används specifikatorn %s för att visa strängar (arrayer av char-värden). Denna specifikator talar om för funktionen printf() vilken typ av information den ska förvänta sig. Genom att använda %s informerar vi printf()-funktionen om att den kommer att ta emot en sträng.
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; }
Språket C innehåller ett standardiserat bibliotek för stränghantering, <string.h>. I detta bibliotek finns en funktion som räknar antalet tecken i en sträng:
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; }
Kom ihåg, även ett mellanslag är ett tecken och kräver en egen plats i arrayen. Till exempel: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.
Genom att använda ett index kan du komma åt strängens element. Eftersom strängar i grunden är char-arrayer kan du även ändra enskilda tecken via deras index.
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; }
Tack för dina kommentarer!