Žice u C (s primjerima)

U ovom vodiču naučit ćete o žicama u programiranju na C-u. Naučit ćete ih deklarirati, inicijalizirati i koristiti za razne I / O operacije uz pomoć primjera.

U programiranju na C niz je niz znakova koji se završavaju nulom . Na primjer:

 char c() = "c string"; 

Kada prevoditelj naiđe na niz znakova zatvorenih u dvostrukim navodnicima, prema zadanim postavkama dodaje nulu na kraju.

Kako proglasiti niz?

Evo kako možete prijaviti nizove:

 char s(5); 

Ovdje smo proglasili niz od 5 znakova.

Kako inicijalizirati nizove?

Nizove možete inicijalizirati na više načina.

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

Uzmimo još jedan primjer:

 char c(5) = "abcde";

Ovdje pokušavamo dodijeliti 6 znakova (zadnji znak je '') charnizu koji ima 5 znakova. Ovo je loše i nikad to ne biste trebali raditi.

Dodjeljivanje vrijednosti stringovima

Nizovi i nizovi su građani drugog reda u C; ne podržavaju operator dodjele nakon što je proglašen. Na primjer,

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

Napomena: Umjesto toga koristite funkciju strcpy () za kopiranje niza.

Čitaj niz od korisnika

Pomoću scanf()funkcije možete čitati niz.

scanf()Funkcija čita niz znakova dok ne naiđe na razmak (prostor, novi red, kartica, itd.)

Primjer 1: scanf () za čitanje niza

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

Izlaz

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

Iako je Dennis Ritchie upisan u gornji program, samo "Dennis" bio je pohranjen u nizu imena. To je zato što je postojao prostor nakon Dennisa.

Kako pročitati redak teksta?

Pomoću fgets()funkcije možete pročitati redak niza. Možete koristiti puts()za prikaz niza.

Primjer 2: fgets () i 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; ) 

Izlaz

 Unesite ime: Tom Hanks Ime: Tom Hanks 

Ovdje smo koristili fgets()funkciju za čitanje niza od korisnika.

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

U sizeof(name)rezultati do 30. Dakle, možemo uzeti maksimalno 30 znakova kao ulaz koji je veći od imena niza.

Za ispis niza koristili smo se puts(name);.

Napomena:gets() funkcija također može biti da se ulaz od korisnika. Međutim, uklanja se iz C standarda.
To je zato gets()što vam omogućuje unos bilo koje duljine znakova. Stoga može doći do preljeva međuspremnika.

Prosljeđivanje nizova funkcijama

Nizovi se mogu proslijediti funkciji na sličan način kao nizovi. Saznajte više o prosljeđivanju nizova funkciji.

Primjer 3: Prosljeđivanje 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); ) 

Žice i pokazivači

Slično kao nizovi, nazivi nizova se "raspadaju" pokazivačima. Stoga možete koristiti pokazivače za manipulaciju elementima niza. Preporučili smo vam da provjerite C nizove i pokazivače prije nego što provjerite ovaj primjer.

Primjer 4: Žice i pokazivači

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

Uobičajene funkcije niza

  • strlen () - izračunava duljinu niza
  • strcpy () - kopira niz u drugi
  • strcmp () - uspoređuje dvije žice
  • strcat () - spaja dva niza

Zanimljivi članci...