Karakterláncok C-ben (példákkal)

Ebben az oktatóanyagban megismerheti a C programozás húrjait. Megtanulja deklarálni, inicializálni és felhasználni különféle I / O műveletekhez példák segítségével.

A C programozásban a karakterlánc egy nullával befejezett karaktersorozat . Például:

 char c() = "c string"; 

Amikor a fordító kettős idézőjelbe foglalt karaktersorozattal találkozik, a végén alapértelmezés szerint null karaktert fűz hozzá .

Hogyan lehet deklarálni a karakterláncot?

A húrok deklarálásának módja:

 char s(5); 

Itt 5 karakterből álló karakterláncot deklaráltunk.

Hogyan inicializáljuk a húrokat?

A karakterláncokat számos módon inicializálhatja.

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

Vegyünk egy másik példát:

 char c(5) = "abcde";

Itt megpróbálunk 6 karaktert rendelni (az utolsó karakter az '') egy char5 karakterből álló tömbhöz. Ez rossz, és ezt soha nem szabad megtenni.

Értékek hozzárendelése karakterláncokhoz

A tömbök és húrok másodosztályú polgárok C-ben; nem támogatják a hozzárendelés operátorát, miután azt deklarálták. Például,

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

Megjegyzés: Használja az strcpy () függvényt a karakterlánc másolásához.

Olvassa el a felhasználó karakterláncát

Használhatja a scanf()függvényt egy karakterlánc olvasására.

A scanf()függvény addig olvassa a karakterek sorozatát, amíg szóközzel nem találkozik (szóköz, újsor, tabulátor stb.).

1. példa: scanf () karakterlánc elolvasásához

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

Kimenet

 Írja be a nevét: Dennis Ritchie A neve Dennis.

Annak ellenére, hogy Dennis Ritchie-t bevezették a fenti programba, csak a "Dennis" -t tárolták a névsorban. Azért van, mert Dennis után volt egy hely.

Hogyan olvasható el egy sor szöveg?

A fgets()függvény segítségével elolvashat egy karakterláncot. És felhasználhatja puts()a karakterlánc megjelenítésére.

2. példa: fgets () és 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; ) 

Kimenet

 Írja be a nevet: Tom Hanks Név: Tom Hanks 

Itt a fgets()függvényt használtuk a karakterlánc beolvasására a felhasználótól.

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

Az sizeof(name)eredmények 30-ig terjednek. Ennélfogva legfeljebb 30 karaktert vehetünk be bevitelként, amely a név karaktersorozat nagysága.

A karakterlánc kinyomtatásához használtuk puts(name);.

Megjegyzés: A gets()funkció az is lehet, hogy bemenetet vegyen fel a felhasználótól. A C-szabványból azonban eltávolításra kerül.
Ez azért van, mert gets()lehetővé teszi bármilyen hosszúságú karakter bevitelét. Ezért előfordulhat, hogy puffer túlcsordul.

Karakterláncok átadása a függvényeknek

A karakterláncokat egy tömbhöz hasonló módon lehet átadni egy függvénynek. Tudjon meg többet a tömbök átadásáról egy függvényhez.

3. példa: Karakterlánc átadása egy függvénynek

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

Húrok és mutatók

A tömbökhöz hasonlóan a karakterláncok neve is "lebomlik" a mutatókra. Ezért mutatókkal kezelheti a karakterlánc elemeit. Javasoljuk, hogy ellenőrizze a C tömböket és mutatókat, mielőtt ellenőrizné ezt a példát.

4. példa: Karakterláncok és mutatók

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

Gyakran használt karakterlánc-függvények

  • strlen () - kiszámítja a húr hosszát
  • strcpy () - másolja a karakterláncot a másikba
  • strcmp () - két karakterláncot hasonlít össze
  • strcat () - két húrt összefűz

érdekes cikkek...