Stygos C (su pavyzdžiais)

Šioje pamokoje sužinosite apie C programavimo eilutes. Su pavyzdžių pagalba išmoksite juos deklaruoti, inicializuoti ir naudoti įvairioms įvesties / išvesties operacijoms.

Programuojant C, eilutė yra simbolių seka, nutraukta nuliniu simboliu . Pavyzdžiui:

 char c() = "c string"; 

Kai kompiliatorius susiduria su dvigubose kabutėse įterptų simbolių seka, jis pagal nutylėjimą prideda nulinį simbolį .

Kaip deklaruoti stygą?

Štai kaip galite deklaruoti eilutes:

 char s(5); 

Čia mes paskelbėme 5 simbolių eilutę.

Kaip inicijuoti eilutes?

Eilutes galite inicijuoti įvairiais būdais.

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

Paimkime kitą pavyzdį:

 char c(5) = "abcde";

Čia mes bandome priskirti 6 simbolius (paskutinis simbolis yra '') char5 simbolių masyvui. Tai yra blogai ir niekada neturėtumėte to daryti.

Vertybių priskyrimas stygoms

Masyvai ir eilutės yra antros klasės piliečiai C; jie nepalaiko priskyrimo operatoriaus, kai jis yra deklaruojamas. Pavyzdžiui,

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

Pastaba: vietoj eilutės nukopijuokite funkciją strcpy ().

Perskaitykite vartotojo eilutę

Galite naudoti scanf()funkciją eilutei nuskaityti.

scanf()Funkcija nuskaito simbolių seka tol, kol ji patiria tarpus (erdvės, naujos eilutės, skirtukas, ir tt).

1 pavyzdys: scanf () eilutei skaityti

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

Rezultatas

 Įveskite vardą: Dennis Ritchie Jūsų vardas Dennisas.

Nors Dennisas Ritchie buvo įtrauktas į aukščiau nurodytą programą, vardų eilutėje buvo saugomas tik „Dennisas“. Taip yra todėl, kad po Denniso buvo vietos.

Kaip skaityti teksto eilutę?

fgets()Funkciją galite naudoti eilutės eilutei nuskaityti. Galite naudoti puts()eilutę rodyti.

2 pavyzdys: „fgets“ () ir „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; ) 

Rezultatas

 Įveskite vardą: Tom Hanks Vardas: Tom Hanks 

Čia mes naudojome fgets()funkciją, norėdami nuskaityti vartotojo eilutę.

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

Į sizeof(name)rezultatai iki 30. Taigi, mes galime imtis ne daugiau 30 simbolių, kaip įvesties, kuri yra pavadinimas eilutę dydis.

Norėdami atspausdinti eilutę, mes naudojome puts(name);.

Pastaba:gets() funkcija taip pat gali būti priimti indėlis vartotojui. Tačiau jis pašalinamas iš C standarto.
Taip yra todėl, kad gets()leidžia įvesti bet kokio ilgio simbolius. Vadinasi, gali būti buferio perpildymas.

Stygų perdavimas funkcijoms

Stygos gali būti perduotos funkcijai panašiai kaip masyvai. Sužinokite daugiau apie masyvų perdavimą funkcijai.

3 pavyzdys: eilutės perdavimas funkcijai

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

Stygos ir rodyklės

Panašūs kaip masyvai, eilučių pavadinimai yra „suskaidomi“ į rodykles. Taigi, norėdami manipuliuoti eilutės elementais, galite naudoti rodykles. Prieš tikrindami šį pavyzdį, rekomendavome patikrinti C masyvus ir rodykles.

4 pavyzdys: stygos ir rodyklės

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

Dažniausiai naudojamos stygų funkcijos

  • strlen () - apskaičiuoja stygos ilgį
  • strcpy () - nukopijuoja eilutę į kitą
  • strcmp () - lygina dvi eilutes
  • strcat () - sujungia dvi eilutes

Įdomios straipsniai...