Strune v C (z primeri)

V tej vadnici boste izvedeli več o nizih v programiranju C. S pomočjo primerov se jih boste naučili prijaviti, inicializirati in uporabiti za različne V / I operacije.

Pri programiranju C je niz zaporedje znakov, zaključenih z ničelnim znakom . Na primer:

 char c() = "c string"; 

Ko prevajalnik naleti na zaporedje znakov, zaprtih v dvojnih narekovajih, na koncu privzeto doda ničelni znak .

Kako razglasiti niz?

Tako lahko prijavite nize:

 char s(5); 

Tu smo razglasili niz s 5 znaki.

Kako inicializirati nize?

Strune lahko inicializirate na več načinov.

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

Vzemimo še en primer:

 char c(5) = "abcde";

Tu poskušamo matriki s 5 znaki dodeliti 6 znakov (zadnji znak je '') char. To je slabo in tega nikoli ne smete početi.

Dodeljevanje vrednosti nizom

Polja in nizi so drugorazredni državljani v jeziku C; ko je deklariran, ne podpirajo operaterja dodelitve. Na primer

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

Opomba: Za kopiranje niza uporabite funkcijo strcpy ().

Preberite String od uporabnika

S scanf()funkcijo lahko berete niz.

scanf()Funkcija prebere niz znakov, dokler ne naleti na presledek (prostor, novo vrstico, jeziček, itd).

Primer 1: scanf () za branje niza

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

Izhod

 Vnesite ime: Dennis Ritchie Vaše ime je Dennis.

Čeprav je bil Dennis Ritchie vpisan v zgornji program, je bil v imenskem nizu shranjen samo "Dennis". To je zato, ker je bil prostor za Dennisom.

Kako prebrati vrstico besedila?

S fgets()funkcijo lahko berete vrstico niza. In lahko uporabite puts()za prikaz niza.

Primer 2: fgets () in postavlja ()

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

Izhod

 Vnesite ime: Tom Hanks Ime: Tom Hanks 

Tu smo uporabili fgets()funkcijo za branje niza od uporabnika.

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

Na sizeof(name)rezultate do 30. zato, da bomo lahko največ 30 znakov kot vhod, ki je velikost ime niza.

Za tiskanje niza smo uporabili puts(name);.

Opomba:gets() funkcija je lahko tudi, da se vnos od uporabnika. Vendar je odstranjen iz standarda C.
To je zato, ker gets()vam omogoča vnos poljubne dolžine znakov. Zato lahko pride do prelivanja medpomnilnika.

Prenos nizov v funkcije

Strune lahko funkciji posredujemo na podoben način kot nizi. Preberite več o posredovanju nizov funkciji.

Primer 3: Posredovanje niza funkciji

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

Strune in kazalci

Podobno kot nizi se tudi imena nizov "razpadajo" na kazalce. Zato lahko s kazalci manipulirate z elementi niza. Preden preverite ta primer, vam priporočamo, da preverite polja C in kazalce.

Primer 4: Strune in kazalci

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

Pogosto uporabljene nizovne funkcije

  • strlen () - izračuna dolžino niza
  • strcpy () - kopira niz v drugega
  • strcmp () - primerja dva niza
  • strcat () - združuje dva niza

Zanimive Članki...