Strune v C: Kako razglasiti spremenljivko, inicializirati, natisniti, primer

Kazalo:

Anonim

Kaj je niz v jeziku C?

String v C ni nič drugega kot zbirka znakov v linearnem zaporedju. 'C' vedno obravnava niz posameznih podatkov, čeprav vsebuje presledke. En sam znak je definiran z uporabo predstavitve z enim narekovajem. Niz je predstavljen z dvojnimi narekovaji.

Example, "Welcome to the world of programming!"

'C' ponuja standardno knjižnico , ki vsebuje številne funkcije, ki jih je mogoče uporabiti za enostavno izvajanje zapletenih operacij v nizih v C.

V tej vadnici boste izvedeli-

  • Kako prijaviti in inicializirati niz v jeziku C
  • Vnos niza: preberite niz
  • Izhod niza: Natisnite / prikažite niz
    • funkcija fputs ()
    • postavlja funkcijo
  • Knjižnica nizov
  • Pretvorba niza v številko

Kako prijaviti in inicializirati niz v jeziku C

AC String je preprosto polje z znakom char kot podatkovnim tipom. Jezik 'C' ne podpira niza kot podatkovnega tipa. Če želite prikazati niz v jeziku C, morate uporabiti niz znakov.

Splošna sintaksa za razglasitev spremenljivke kot niza v jeziku C je naslednja,

char string_variable_name [array_size];

Klasično izjavo nizov lahko naredite na naslednji način:

 char string_name[string_length] = "string"; 

Velikost matrike je treba določiti med razglasitvijo spremenljivke C String, ker se z njo izračuna, koliko znakov bo shranjenih znotraj spremenljivke niza v C. Nekateri veljavni primeri deklaracije nizov so naslednji,

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

Zgornji primer predstavlja spremenljivke niza z velikostjo polja 15. To pomeni, da lahko podana matrika nizov C vsebuje največ 15 znakov. Indeksiranje polja se začne od 0, zato bodo v njem shranjeni znaki s položaja 0-14. Prevajalnik C samodejno doda NULL znak '\ 0' v ustvarjeno matriko znakov.

Preučimo inicializacijo niza v C. Naslednji primer prikazuje inicializacijo nizov v jeziku 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*/

V string3 je treba izrecno dodati znak NULL, znaki pa so zaprti v enojne narekovaje.

'C' nam omogoča tudi inicializiranje nizovne spremenljivke, ne da bi določil velikost nizov znakov. To lahko storite na naslednji način,

char first_name[ ] = "NATHAN";

Ime nizov v C deluje kot kazalec, ker je v bistvu matrika.

Vnos niza: preberite niz

Ko pišete interaktivne programe, ki od uporabnika zahtevajo vnos, C zagotavlja funkcije scanf (), gets () in fgets (), da najde vrstico besedila, ki ga vnese uporabnik.

Ko za branje uporabljamo scanf (), uporabimo specifikator oblike "% s", ne da bi za dostop do naslova spremenljivke uporabili "&", ker ime polja deluje kot kazalec. Na primer:

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

Izhod:

Enter your first name and age:John_Smith 48

Težava funkcije scanf je v tem, da nikoli ne prebere celotnih nizov v C. Postopek branja bo ustavil takoj, ko pride do presledkov, podajanja obrazcev, navpičnega zavihka, nove vrstice ali vrnitve kočije. Recimo, da vnos damo kot "Vadnice za Guru99", potem funkcija scanf ne bo nikoli prebrala celotnega niza, saj se med obema imenoma pojavi presledek. Funkcija scanf bo brala samo Guru99.

Za branje niza, ki vsebuje presledke, uporabljamo funkcijo gets (). Gets prezre presledke. Ko je dosežena nova vrstica (pritisnjena je tipka Enter), se branje ustavi. Na primer:

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

Izhod:

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

Druga varnejša alternativa getu () je funkcija fgets (), ki bere določeno število znakov. Na primer:

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

Izhod:

Enter your name plz: CarlosMy name is Carlos

Argumenti fgets () so:

  • ime niza,
  • število znakov za branje,
  • stdin pomeni branje s standardnega vhoda, ki je tipkovnica.

Izhod niza: Natisnite / prikažite niz

Standardna funkcija printf se uporablja za tiskanje ali prikaz nizov v C na izhodni napravi. Uporabljeni specifikator formata je% s

Primer,

printf("%s", name);

String se izvede s funkcijama fputs () in printf ().

funkcija fputs ()

Fputs () potrebuje ime niza in kazalec na mesto, kjer želite prikazati besedilo. Za tiskanje na zaslon uporabljamo stdout, ki se nanaša na standardni izhod, na primer:

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

Izhod:

Enter your town: New YorkNew York

postavlja funkcijo

Funkcija postavlja se uporablja za tiskanje niza v C na izhodni napravi in ​​premikanje kazalca nazaj na prvo mesto. Funkcijo put lahko uporabimo na naslednji način,

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

Sintaksa te funkcije je sorazmerno preprosta kot druge funkcije.

Knjižnica nizov

Standardna knjižnica 'C' ponuja različne funkcije za upravljanje nizov znotraj programa. Te funkcije se imenujejo tudi kot upravljavci nizov. Vsi ti upravljavci so prisotni v datoteki glave .

Funkcija Namen
strlen () Ta funkcija se uporablja za iskanje dolžine niza. Vrne, koliko znakov je v nizu, razen znaka NULL.
strcat (str1, str2) Ta funkcija se uporablja za kombiniranje dveh nizov v en sam niz. Pripne ali združi str2 na konec str1 in vrne kazalec na str1.
strcmp (str1, str2) Ta funkcija se uporablja za primerjavo dveh nizov med seboj. Vrne 0, če je str1 enako str2, manj kot 0, če je str1 str2.

Oglejmo si spodnji program, ki prikazuje funkcije knjižnice nizov:

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

Izhod:

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

Druge pomembne funkcije knjižnice so:

  • strncmp (str1, str2, n): vrne 0, če je prvih n znakov v str1 enako prvih n znakov v str2, manj kot 0, če je str1 str2.
  • strncpy (str1, str2, n) Ta funkcija se uporablja za kopiranje niza iz drugega niza. Kopira prvih n znakov str2 v str1
  • strchr (str1, c): vrne kazalec na prvi pojav char c v str1 ali NULL, če znaka ni mogoče najti.
  • strrchr (str1, c): išče str1 v obratni smeri in vrne kazalec na položaj char c v str1 ali NULL, če znaka ni mogoče najti.
  • strstr (str1, str2): vrne kazalec na prvi pojav str2 v str1 ali NULL, če str2 ni mogoče najti.
  • strncat (str1, str2, n) Doda (združi) prvih n znakov str2 na konec str1 in vrne kazalec na str1.
  • strlwr (): za pretvorbo niza v male črke
  • strupr (): za pretvorbo niza v velike črke
  • strrev (): obrniti niz

Pretvorba niza v številko

Pri programiranju C lahko pretvorimo niz številskih znakov v številčno vrednost, da preprečimo napako med izvajanjem. Knjižnica stdio.h vsebuje naslednje funkcije za pretvorbo niza v število:

  • int atoi (str) Stoji za ASCII kot celo število; pretvori str v enakovredno vrednost int. Vrne se 0, če prvi znak ni številka ali če nobena številka ni naletela.
  • double atof (str) Stoji, da ASCII plava, pretvori str v enakovredno dvojno vrednost. Vrne se 0.0, če prvi znak ni številka ali če nobena številka ni naletela.
  • long int atol (str) Stoji za ASCII v long int, pretvori str v enakovredno dolgo celo število. Vrne se 0, če prvi znak ni številka ali če nobena številka ni naletela.

Naslednji program prikazuje funkcijo atoi ():

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

Izhod:

Enter a number: 221348you enter 221348
  • Izjava kazalca niza, kot je char * string = "jezik", je konstanta in je ni mogoče spremeniti.

Povzetek

  • Niz je zaporedje znakov, shranjenih v nizu znakov.
  • Niz je besedilo, zaprto z dvojnimi narekovaji.
  • Znak, kot je 'd', ni niz in je označen z enojnimi narekovaji.
  • 'C' ponuja standardne funkcije knjižnice za upravljanje nizov v programu. Manipulatorji nizov so shranjeni v datoteki glave .
  • Niz je treba deklarirati ali inicializirati pred uporabo v programu.
  • Obstajajo različne vhodne in izhodne funkcije nizov, vsaka med njimi ima svoje značilnosti.
  • Ne pozabite vključiti knjižnice nizov za delo s svojimi funkcijami
  • String lahko pretvorimo v število prek atoi (), atof () in atol (), ki so zelo uporabni za kodiranje in dekodiranje.
  • Z različnimi nizi lahko manipuliramo z definiranjem niza nizov v jeziku C.