Strings in C (met voorbeelden)

In deze tutorial leer je over strings in C-programmering. Aan de hand van voorbeelden leert u ze declareren, initialiseren en gebruiken voor verschillende I / O-bewerkingen.

Bij C-programmering is een tekenreeks een reeks tekens die wordt beëindigd met een nul-teken . Bijvoorbeeld:

 char c() = "c string"; 

Wanneer de compiler een reeks tekens tegenkomt tussen dubbele aanhalingstekens, wordt er standaard een nul-teken aan het einde toegevoegd.

Hoe declareer je een string?

Hier leest u hoe u strings kunt declareren:

 char s(5); 

Hier hebben we een reeks van 5 tekens gedeclareerd.

Hoe tekenreeksen initialiseren?

U kunt strings op een aantal manieren initialiseren.

 char c() = "abcd"; char c(50) = "abcd"; char c() = ('a', 'b', 'c', 'd', ''); char c(5) = ('a', 'b', 'c', 'd', ''); 

Laten we nog een voorbeeld nemen:

 char c(5) = "abcde";

Hier proberen we 6 karakters toe te wijzen (het laatste karakter is '') aan een chararray met 5 karakters. Dit is slecht en u mag dit nooit doen.

Waarden toewijzen aan strings

Arrays en strings zijn tweederangsburgers in C; ze ondersteunen de toewijzingsoperator niet als deze eenmaal is gedeclareerd. Bijvoorbeeld,

 char c(100); c = "C programming"; // Error! array type is not assignable.

Opmerking: gebruik de functie strcpy () om de tekenreeks te kopiëren.

Lees String van de gebruiker

U kunt de scanf()functie gebruiken om een ​​string te lezen.

De scanf()functie leest de reeks tekens totdat deze witruimte tegenkomt (spatie, nieuwe regel, tab, enz.).

Voorbeeld 1: scanf () om een ​​string te lezen

 #include int main() ( char name(20); printf("Enter name: "); scanf("%s", name); printf("Your name is %s.", name); return 0; ) 

Uitvoer

 Voer naam in: Dennis Ritchie Je naam is Dennis.

Hoewel Dennis Ritchie in het bovenstaande programma was ingevoerd, werd alleen "Dennis" in de naamreeks opgeslagen. Het is omdat er een spatie was achter Dennis.

Hoe lees ik een regel tekst?

U kunt de fgets()functie gebruiken om een ​​regel string te lezen. En u kunt gebruiken puts()om de tekenreeks weer te geven.

Voorbeeld 2: fgets () en putjes ()

 #include int main() ( char name(30); printf("Enter name: "); fgets(name, sizeof(name), stdin); // read string printf("Name: "); puts(name); // display string return 0; ) 

Uitvoer

 Voer naam in: Tom Hanks Naam: Tom Hanks 

Hier hebben we de fgets()functie gebruikt om een ​​string van de gebruiker te lezen.

fgets(name, sizeof(name), stdlin); // read string

Het sizeof(name)resultaat is 30. Daarom kunnen we maximaal 30 tekens als invoer nemen, wat de grootte is van de naamstring.

Om de string af te drukken, hebben we gebruikt puts(name);.

Note: The gets() function can also be to take input from the user. However, it is removed from the C standard.
It's because gets() allows you to input any length of characters. Hence, there might be a buffer overflow.

Passing Strings to Functions

Strings can be passed to a function in a similar way as arrays. Learn more about passing arrays to a function.

Example 3: Passing string to a Function

 #include void displayString(char str()); int main() ( char str(50); printf("Enter string: "); fgets(str, sizeof(str), stdin); displayString(str); // Passing string to a function. return 0; ) void displayString(char str()) ( printf("String Output: "); puts(str); ) 

Strings and Pointers

Similar like arrays, string names are "decayed" to pointers. Hence, you can use pointers to manipulate elements of the string. We recommended you to check C Arrays and Pointers before you check this example.

Example 4: Strings and Pointers

 #include int main(void) ( char name() = "Harry Potter"; printf("%c", *name); // Output: H printf("%c", *(name+1)); // Output: a printf("%c", *(name+7)); // Output: o char *namePtr; namePtr = name; printf("%c", *namePtr); // Output: H printf("%c", *(namePtr+1)); // Output: a printf("%c", *(namePtr+7)); // Output: o )

Commonly Used String Functions

  • strlen() - calculates the length of a string
  • strcpy () - kopieert een string naar een andere
  • strcmp () - vergelijkt twee strings
  • strcat () - voegt twee strings samen

Interessante artikelen...