Stīgas C: Kā deklarēt mainīgo, inicializēt, izdrukāt, piemērs

Satura rādītājs:

Anonim

Kas ir virkne C?

String C nav nekas, bet kolekcija rakstzīmes lineārā secībā. 'C' vienmēr apstrādā virkni ar atsevišķiem datiem, kaut arī tajos ir atstarpes. Viena rakstzīme tiek definēta, izmantojot vienas cenas piedāvājumu. Virkne tiek attēlota, izmantojot dubultās pēdiņas.

Example, "Welcome to the world of programming!"

'C' nodrošina standarta bibliotēku , kurā ir daudzas funkcijas, kuras var izmantot, lai viegli veiktu sarežģītas operācijas ar C virknēm.

Šajā apmācībā jūs uzzināsiet

  • Kā deklarēt un inicializēt virkni C
  • Virknes ievade: izlasiet virkni
  • Stīgu izvade: izdrukājiet / parādiet virkni
    • funkcija ieejas ()
    • liek funkciju
  • Stīgu bibliotēka
  • Stīgu pārveidošana par skaitli

Kā deklarēt un inicializēt virkni C

AC virkne ir vienkāršs masīvs, kura datu tips ir char. “C” valoda tieši neatbalsta virkni kā datu tipu. Tādējādi, lai parādītu virkni C, jums jāizmanto rakstzīmju masīvs.

Vispārīga sintakse, lai mainīgo mainītu kā virkni C, ir šāda:

char string_variable_name [array_size];

Klasisko stīgu deklarāciju var veikt šādi:

 char string_name[string_length] = "string"; 

Deklarējot C virknes mainīgo, ir jānosaka masīva lielums, jo to izmanto, lai aprēķinātu, cik rakstzīmes tiks glabātas C virknes mainīgajā. Daži derīgi virkņu deklarēšanas piemēri ir šādi:

char first_name[15]; //declaration of a string variablechar last_name[15];

Iepriekš minētais piemērs attēlo virkņu mainīgos ar masīva lielumu 15. Tas nozīmē, ka dotais C virknes masīvs spēj turēt ne vairāk kā 15 rakstzīmes. Masīva indeksēšana sākas no 0, tāpēc tajā tiks saglabātas rakstzīmes no 0-14 pozīcijas. C kompilators izveidotajam rakstzīmju masīvam automātiski pievieno NULL rakstzīmi '\ 0'.

Pētīsim virkņu inicializāciju C. Šis piemērs parāda virkņu inicializēšanu C,

char first_name[15] = "ANTHONY";char first_name[15] = {'A','N','T','H','O','N','Y','\0'}; // NULL character '\0' is required at end in this declarationchar string1 [6] = "hello";/* string size = 'h'+'e'+'l'+'l'+'o'+"NULL" = 6 */char string2 [ ] = "world"; /* string size = 'w'+'o'+'r'+'l'+'d'+"NULL" = 6 */char string3[6] = {'h', 'e', 'l', 'l', 'o', '\0'} ; /*Declaration as set of characters ,Size 6*/

3. virknē ir skaidri jāpievieno rakstzīme NULL, un rakstzīmes ir ievietotas pēdiņās.

"C" arī ļauj mums inicializēt virknes mainīgo, nenosakot rakstzīmju masīva lielumu. To var izdarīt šādi:

char first_name[ ] = "NATHAN";

C virkņu nosaukums C darbojas kā rādītājs, jo būtībā tas ir masīvs.

Virknes ievade: izlasiet virkni

Rakstot interaktīvas programmas, kas prasa lietotājam ievadi, C nodrošina funkcijas scanf (), get () un fgets (), lai atrastu no lietotāja ievadītu teksta rindiņu.

Kad lasīšanai izmantojam scanf (), mēs izmantojam formāta specifikatoru "% s", neizmantojot "&", lai piekļūtu mainīgā adresei, jo masīva nosaukums darbojas kā rādītājs. Piemēram:

#include int main() {char name[10];int age;printf("Enter your first name and age: \n");scanf("%s %d", name, &age);printf("You entered: %s %d",name,age);}

Izeja:

Enter your first name and age:John_Smith 48

Funkcija scanf ir tāda, ka tā nekad nelasa visas virknes C. Tas apstādinās lasīšanas procesu, tiklīdz rodas atstarpe, veidlapu padeve, vertikāla cilne, jauna rinda vai atdošana no karietes. Pieņemsim, ka mēs ievadām ievadi kā "Guru99 apmācības", tad scanf funkcija nekad neizlasīs visu virkni, jo starp abiem nosaukumiem ir atstarpes rakstzīme. Funkcija scanf nolasīs tikai Guru99.

Lai lasītu virkni, kurā ir atstarpes, mēs izmantojam funkciju get (). Gets ignorē atstarpes. Tas pārstāj lasīt, kad ir sasniegta jauna rinda (tiek nospiesta taustiņš Enter). Piemēram:

#include int main() {char full_name[25];printf("Enter your full name: ");gets(full_name);printf("My full name is %s ",full_name);return 0;}

Izeja:

Enter your full name: Dennis RitchieMy full name is Dennis Ritchie

Vēl viena drošāka alternatīva funkcijai get () ir funkcija fgets (), kas nolasa noteiktu rakstzīmju skaitu. Piemēram:

#include int main() {char name[10];printf("Enter your name plz: ");fgets(name, 10, stdin);printf("My name is %s ",name);return 0;}

Izeja:

Enter your name plz: CarlosMy name is Carlos

Fgets () argumenti ir:

  • virknes nosaukums,
  • lasāmo rakstzīmju skaits,
  • stdin nozīmē lasīt no standarta ievades, kas ir tastatūra.

Stīgu izvade: izdrukājiet / parādiet virkni

Standarta printf funkcija tiek izmantota, lai izdrukātu vai attēlotu virknes C izvades ierīcē. Izmantotais formāta norādītājs ir% s

Piemērs,

printf("%s", name);

Stīgu izvade tiek veikta ar izejvielu () un printf () funkcijām.

funkcija ieejas ()

Ievadei () nepieciešams virknes nosaukums un norāde uz vietu, kur vēlaties parādīt tekstu. Lai drukātu uz ekrāna, mēs izmantojam stdout, kas attiecas uz standarta izvadi. Piemēram:

#include int main(){char town[40];printf("Enter your town: ");gets(town);fputs(town, stdout);return 0;}

Izeja:

Enter your town: New YorkNew York

liek funkciju

Funkcija Put tiek izmantota, lai izvades ierīcē drukātu virkni C un pārvietotu kursoru atpakaļ pirmajā pozīcijā. Funkciju A nodot var izmantot šādi:

#include int main() {char name[15];gets(name); //reads a stringputs(name); //displays a stringreturn 0;}

Šīs funkcijas sintakse ir salīdzinoši vienkārša nekā citas funkcijas.

Stīgu bibliotēka

Standarta “C” bibliotēka nodrošina dažādas funkcijas, lai manipulētu ar virknēm programmā. Šīs funkcijas sauc arī par virkņu apstrādātājiem. Visi šie apstrādātāji atrodas galvenes failā.

Funkcija Mērķis
strlen () Šo funkciju izmanto, lai atrastu virknes garumu. Tas atgriež, cik rakstzīmju ir virknē, izņemot NULL rakstzīmi.
strcat (str1, str2) Šo funkciju izmanto divu virkņu apvienošanai, lai izveidotu vienu virkni. Tas pievieno vai savieno str2 līdz str1 beigām un atgriež rādītāju str1.
strcmp (str1, str2) Šo funkciju izmanto, lai salīdzinātu divas virknes savā starpā. Tas atgriež 0, ja str1 ir vienāds ar str2, mazāks par 0, ja str1 str2.

Apskatīsim zemāk esošo programmu, kas parāda virkņu bibliotēkas funkcijas:

#include #include int main () {//string initializationchar string1[15]="Hello";char string2[15]=" World!";char string3[15];int val;//string comparisonval= strcmp(string1,string2);if(val==0){printf("Strings are equal\n");}else{printf("Strings are not equal\n");}//string concatenationprintf("Concatenated string:%s",strcat(string1,string2)); //string1 contains hello world!//string lengthprintf("\nLength of first string:%d",strlen(string1));printf("\nLength of second string:%d",strlen(string2));//string copyprintf("\nCopied string is:%s\n",strcpy(string3,string1)); //string1 is copied into string3return 0;}

Izeja:

Strings are not equalConcatenated string:Hello World!Length of first string:12Length of second string:7Copied string is:Hello World!

Citas svarīgas bibliotēkas funkcijas ir:

  • strncmp (str1, str2, n): tas atgriež 0, ja str1 pirmās n rakstzīmes ir vienādas ar str2 pirmajām n rakstzīmēm, mazāk nekā 0, ja str1 str2.
  • strncpy (str1, str2, n) Šo funkciju izmanto virknes kopēšanai no citas virknes. Kopē str2 pirmās n rakstzīmes uz str1
  • strchr (str1, c): tas atgriež rādītāju uz pirmo char c parādīšanos str1 vai NULL, ja raksturs nav atrasts.
  • strrchr (str1, c): tas meklē str1 pretēji un atgriež rādītāju char c pozīcijā str1 vai NULL, ja raksturs nav atrasts.
  • strstr (str1, str2): tas atgriež rādītāju str2 pirmajam gadījumam str1 vai NULL, ja str2 nav atrasts.
  • strncat (str1, str2, n) Pievieno (savieno) str2 pirmās n rakstzīmes str1 beigās un atgriež rādītāju str1.
  • strlwr (): pārveidot virkni mazajiem burtiem
  • strupr (): pārveidot virkni lielajiem burtiem
  • strrev (): mainīt virkni

Stīgu pārveidošana par skaitli

Programmējot C, mēs varam pārveidot ciparu rakstzīmju virkni par skaitlisku vērtību, lai novērstu izpildlaika kļūdu. Stdio.h bibliotēkā ir šādas funkcijas, lai virkni pārveidotu par skaitli:

  • int atoi (str) apzīmē ASCII līdz veselam skaitlim; tas pārveido str līdzvērtīgai int vērtībai. 0 tiek atgriezts, ja pirmā rakstzīme nav skaitlis vai nav sastopami cipari.
  • double atof (str) Stāv, lai ASCII peldētu, tas pārveido str līdzvērtīgai dubultai vērtībai. 0.0 tiek atgriezta, ja pirmā rakstzīme nav skaitlis vai nav sastopami cipari.
  • long int atol (str) ASCII apzīmē ar garu int. Konvertē str uz ekvivalentu garu vesela skaitļa vērtību. 0 tiek atgriezts, ja pirmā rakstzīme nav skaitlis vai nav sastopami cipari.

Šī programma demonstrē atoi () funkciju:

#include int main(){char *string_id[10];int ID;printf("Enter a number: ");gets(string_id);ID = atoi(string_id);printf("you enter %d ",ID);return 0;}

Izeja:

Enter a number: 221348you enter 221348
  • Virknes rādītāja deklarācija, piemēram, char * string = "language", ir konstante, un to nevar mainīt.

Kopsavilkums

  • Virkne ir rakstzīmju virkne, kas saglabāta rakstzīmju masīvā.
  • Virkne ir teksts, kas ievietots pēdiņās.
  • Raksts, piemēram, “d”, nav virkne, un to norāda ar pēdiņām.
  • 'C' nodrošina bibliotēkas standarta funkcijas, lai manipulētu ar virknēm programmā. Stīgu manipulatori tiek glabāti galvenes failā .
  • Virkne ir jādeklarē vai jāinicializē pirms tās izmantošanas programmā.
  • Ir dažādas ievades un izvades virkņu funkcijas, katrai no tām ir savas iezīmes.
  • Neaizmirstiet iekļaut virkņu bibliotēku, lai strādātu ar tās funkcijām
  • Mēs varam pārveidot virkni uz numuru, izmantojot atoi (), atof () un atol (), kas ir ļoti noderīgi procesu kodēšanai un dekodēšanai.
  • Mēs varam manipulēt ar dažādām virknēm, definējot virkņu masīvu C.