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 null-terminatorn \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.
Säkerställ alltid att din teckenarray är ett element större än texten den innehåller för att rymma denna terminator.
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, när du vill visa strängar (arrayer av char-värden), använder du specifikatorn %s. Denna specifikator instruerar funktionen printf() om vilken typ av information den ska förvänta sig. Genom att använda %s informerar vi funktionen printf() 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 inkluderar ett standardbibliotek för stränghantering, <string.h>. Inom 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
Can you explain the difference between 'x' and "x" in more detail?
How do I use the null terminator correctly in my own strings?
What are some common functions in <string.h> for string manipulation?
Awesome!
Completion rate improved to 2.63
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 null-terminatorn \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.
Säkerställ alltid att din teckenarray är ett element större än texten den innehåller för att rymma denna terminator.
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, när du vill visa strängar (arrayer av char-värden), använder du specifikatorn %s. Denna specifikator instruerar funktionen printf() om vilken typ av information den ska förvänta sig. Genom att använda %s informerar vi funktionen printf() 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 inkluderar ett standardbibliotek för stränghantering, <string.h>. Inom 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!