Strenge i C (med eksempler)

I denne vejledning lærer du om strenge i C-programmering. Du lærer at erklære dem, initialisere dem og bruge dem til forskellige I / O-operationer ved hjælp af eksempler.

I C-programmering er en streng en sekvens af tegn, der afsluttes med et null-tegn . For eksempel:

 char c() = "c string"; 

Når compileren støder på en række tegn indeholdt i de dobbelte anførselstegn, tilføjer den som standard et null-tegn .

Hvordan erklæres en streng?

Sådan kan du erklære strenge:

 char s(5); 

Her har vi erklæret en streng på 5 tegn.

Hvordan initialiseres strenge?

Du kan initialisere strenge på en række måder.

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

Lad os tage et andet eksempel:

 char c(5) = "abcde";

Her forsøger vi at tildele 6 tegn (det sidste tegn er '') til en charmatrix med 5 tegn. Dette er dårligt, og du skal aldrig gøre dette.

Tildeling af værdier til strenge

Arrays og strings er andenklasses borgere i C; de understøtter ikke tildelingsoperatøren, når den er erklæret. For eksempel,

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

Bemærk: Brug strcpy () -funktionen til at kopiere strengen i stedet.

Læs streng fra brugeren

Du kan bruge scanf()funktionen til at læse en streng.

Den scanf()aflæser sekvens af tegn, indtil den møder blanktegn (mellemrum, linjeskift, fane, etc.).

Eksempel 1: scanf () for at læse en streng

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

Produktion

 Indtast navn: Dennis Ritchie Dit navn er Dennis.

Selvom Dennis Ritchie blev indtastet i ovenstående program, var kun "Dennis" gemt i navnestrengen. Det er fordi der var et rum efter Dennis.

Hvordan læses en tekstlinje?

Du kan bruge fgets()funktionen til at læse en streng. Og du kan bruge puts()til at vise strengen.

Eksempel 2: fgets () og sætter ()

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

Produktion

 Indtast navn: Tom Hanks Navn: Tom Hanks 

Her har vi brugt fgets()funktionen til at læse en streng fra brugeren.

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

De sizeof(name)resultater til 30. Derfor kan vi tage et maksimum på 30 tegn som input, der er på størrelse med navnet streng.

For at udskrive strengen har vi brugt puts(name);.

Bemærk: Den gets()funktion kan også være at tage input fra brugeren. Det fjernes dog fra C-standarden.
Det er fordi gets()giver dig mulighed for at indtaste en hvilken som helst længde af tegn. Derfor kan der være et bufferoverløb.

Videregive strenge til funktioner

Strenge kan overføres til en funktion på samme måde som arrays. Lær mere om videregivelse af arrays til en funktion.

Eksempel 3: Videregive streng til en funktion

 #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); ) 

Strenge og pegepinde

Lignende ligesom arrays er strengnavne "henfaldet" til henvisninger. Derfor kan du bruge pegepinde til at manipulere elementer i strengen. Vi anbefalede dig at kontrollere C Arrays og Pointers, før du tjekker dette eksempel.

Eksempel 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 )

Almindeligt anvendte strengfunktioner

  • strlen () - beregner længden af ​​en streng
  • strcpy () - kopierer en streng til en anden
  • strcmp () - sammenligner to strenge
  • strcat () - sammenkæder to strenge

Interessante artikler...