Stringid C-s (koos näidetega)

Selles õpetuses saate teada stringidest C-programmeerimises. Õpid neid deklareerima, initsialiseerima ja kasutama näidete abil mitmesuguste sisend- / väljundoperatsioonide jaoks.

C-programmeerimisel on string tähemärkide jada, mis on lõpetatud nullmärgiga . Näiteks:

 char c() = "c string"; 

Kui kompilaator kohtub topelt jutumärkidesse sisestatud märkide järjestusega, lisab see lõppu vaikimisi nullmärgi.

Kuidas string deklareerida?

Stringide deklareerimiseks toimige järgmiselt.

 char s(5); 

Siin oleme kuulutanud viiest tähemärgist koosneva stringi.

Kuidas stringe initsialiseerida?

Stringid saab lähtestada mitmel viisil.

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

Võtame veel ühe näite:

 char c(5) = "abcde";

Siin proovime 5 tähemärgiga massiivile määrata 6 tähemärki (viimane tähemärk on '') char. See on halb ja te ei tohiks seda kunagi teha.

Stringidele väärtuste määramine

Massiivid ja stringid on C-klassi teise klassi kodanikud; nad ei toeta ülesandeoperaatorit, kui see on deklareeritud. Näiteks,

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

Märkus . Stringi kopeerimiseks kasutage funktsiooni strcpy ().

Lugege kasutaja stringi

scanf()Funktsiooni saab kasutada stringi lugemiseks.

scanf()Funktsioon loeb tähemärkide jada, kuni tal tekib tühik (tühik, reavahetus, tab jne).

Näide 1: stringi lugemiseks scanf ()

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

Väljund

 Sisestage nimi: Dennis Ritchie Teie nimi on Dennis.

Ehkki Dennis Ritchie oli ülalnimetatud programmi kantud, salvestati nimedringi ainult "Dennis". Sellepärast, et Dennise järel oli ruumi.

Kuidas lugeda tekstirida?

Võite kasutada fgets()funktsiooni lugeda rida string. Ja saate kasutada puts()stringi kuvamiseks.

Näide 2: fgets () ja put ()

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

Väljund

 Sisestage nimi: Tom Hanks Nimi: Tom Hanks 

Siin oleme fgets()funktsiooni kasutanud stringi lugemiseks kasutajalt.

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

sizeof(name)Tulemused 30. Seega saame võtta maksimaalselt 30 tähemärki sisendiks, mis on suurus nime string.

Nööri printimiseks oleme kasutanud puts(name);.

Märkus . gets()Funktsioon võib olla ka kasutaja sisendi võtmine. Kuid see eemaldatakse C-standardist.
Sellepärast, et gets()saate sisestada suvalise pikkusega tähemärke. Seega võib esineda puhvri ülevoolu.

Stringide edastamine funktsioonidele

Stringid saab funktsioonile edastada sarnaselt massiividele. Lisateave massiivide funktsiooni edastamise kohta.

Näide 3: Stringi edastamine funktsioonile

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

Stringid ja näpunäited

Sarnaselt massiividele on stringinimed "lagunenud" osutiteni. Seega saate stringi elementidega manipuleerimiseks kasutada näpunäiteid. Soovitame teil enne selle näite kontrollimist kontrollida C massiive ja osutajaid.

Näide 4: stringid ja osutid

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

Tavaliselt kasutatavad stringifunktsioonid

  • strlen () - arvutab stringi pikkuse
  • strcpy () - kopeerib stringi teise
  • strcmp () - võrdleb kahte stringi
  • strcat () - liidab kaks stringi

Huvitavad Artiklid...