Strenger i C (med eksempler)

I denne opplæringen lærer du om strenger i C-programmering. Du lærer å erklære dem, initialisere dem og bruke dem til forskjellige I / O-operasjoner ved hjelp av eksempler.

I C-programmering er en streng en sekvens av tegn avsluttet med et nulltegn . For eksempel:

 char c() = "c string"; 

Når kompilatoren møter en sekvens med tegn som er omsluttet av de doble anførselstegnene, legger den som standard til et nulltegn.

Hvordan erklære en streng?

Slik kan du erklære strenger:

 char s(5); 

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

Hvordan initialisere strenger?

Du kan initialisere strenger på flere måter.

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

La oss ta et annet eksempel:

 char c(5) = "abcde";

Her prøver vi å tildele 6 tegn (det siste tegnet er '') til en charmatrise med 5 tegn. Dette er ille, og du bør aldri gjøre dette.

Tilordne verdier til strenger

Arrays og strenger er annenrangs borgere i C; de støtter ikke oppdragsoperatøren når den er erklært. For eksempel,

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

Merk: Bruk strcpy () -funksjonen til å kopiere strengen i stedet.

Les streng fra brukeren

Du kan bruke scanf()funksjonen til å lese en streng.

Den scanf()Funksjonen leser tegnrekken til den støter mellomrom (mellomrom, linjeskift, tab, etc.).

Eksempel 1: scanf () for å lese en streng

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

Produksjon

 Skriv inn navn: Dennis Ritchie Ditt navn er Dennis.

Selv om Dennis Ritchie var med i programmet ovenfor, var bare "Dennis" lagret i navnestrengen. Det er fordi det var et rom etter Dennis.

Hvordan lese en tekstlinje?

Du kan bruke fgets()funksjonen til å lese en streng. Og du kan bruke puts()til å vise strengen.

Eksempel 2: fgets () og puts ()

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

Produksjon

 Skriv inn navn: Tom Hanks Navn: Tom Hanks 

Her har vi brukt fgets()funksjon for å lese en streng fra brukeren.

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

De sizeof(name)resultater til 30. Derfor kan vi ta opptil 30 tegn som inngang, som er størrelsen på navnstrengen.

For å skrive ut strengen har vi brukt 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 () - kopierer en streng til en annen
  • strcmp () - sammenligner to strenger
  • strcat () - sammenkobler to strenger

Interessante artikler...