C Dizgeleri (Örneklerle)

Bu eğitimde, C programlamadaki dizeler hakkında bilgi edineceksiniz. Bunları beyan etmeyi, başlatmayı ve örnekler yardımıyla çeşitli I / O işlemleri için kullanmayı öğreneceksiniz.

C programlamasında, bir dize, bir boş karakterle sonlandırılan bir karakter dizisidir . Örneğin:

 char c() = "c string"; 

Derleyici, çift tırnak işaretleri içine alınmış bir dizi karakterle karşılaştığında, varsayılan olarak sonuna bir boş karakter ekler .

Bir dizge nasıl bildirilir?

Dizeleri şu şekilde bildirebilirsiniz:

 char s(5); 

Burada 5 karakterlik bir dizi tanımladık.

Dizeler nasıl başlatılır?

Dizeleri birkaç yolla başlatabilirsiniz.

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

Başka bir örnek alalım:

 char c(5) = "abcde";

Burada 5 karakterlik ''bir chardiziye 6 karakter (son karakter ) atamaya çalışıyoruz . Bu kötü ve bunu asla yapmamalısın.

Dizelere Değer Atama

Diziler ve diziler C'deki ikinci sınıf vatandaşlardır; ilan edildikten sonra atama operatörünü desteklemezler. Örneğin,

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

Not: Bunun yerine dizeyi kopyalamak için strcpy () işlevini kullanın.

Kullanıcıdan String oku

scanf()Bir dizeyi okumak için işlevi kullanabilirsiniz .

scanf()Boşluk (boşluk, satır, sekme, vs.) ile karşılaşana kadar işlev karakter dizisini okur.

Örnek 1: scanf () bir dizeyi okumak için

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

Çıktı

 İsim girin: Dennis Ritchie Adınız Dennis.

Dennis Ritchie yukarıdaki programa girilmiş olsa da, ad dizesinde sadece "Dennis" saklandı. Dennis'den sonra boşluk olduğu için.

Bir metin satırı nasıl okunur?

fgets()İşlevi bir dizge satırını okumak için kullanabilirsiniz . Ve puts()dizeyi görüntülemek için kullanabilirsiniz .

Örnek 2: fgets () ve puts ()

 #include int main() ( char name(30); printf("Enter name: "); fgets(name, sizeof(name), stdin); // read string printf("Name: "); puts(name); // display string return 0; ) 

Çıktı

 İsim girin: Tom Hanks Adı: Tom Hanks 

Burada, fgets()kullanıcıdan bir dizgeyi okumak için işlevi kullandık .

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

sizeof(name)Dolayısıyla 30'a sonuçları, biz adı dizesi boyutudur girdi olarak 30 karakter uzunluğunda alabilir.

Dizeyi yazdırmak için kullandık puts(name);.

Note: The gets() function can also be to take input from the user. However, it is removed from the C standard.
It's because gets() allows you to input any length of characters. Hence, there might be a buffer overflow.

Passing Strings to Functions

Strings can be passed to a function in a similar way as arrays. Learn more about passing arrays to a function.

Example 3: Passing string to a Function

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

Strings and Pointers

Similar like arrays, string names are "decayed" to pointers. Hence, you can use pointers to manipulate elements of the string. We recommended you to check C Arrays and Pointers before you check this example.

Example 4: Strings and Pointers

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

Commonly Used String Functions

  • strlen() - calculates the length of a string
  • strcpy () - bir dizgeyi diğerine kopyalar
  • strcmp () - iki dizgeyi karşılaştırır
  • strcat () - iki dizeyi bitiştirir

Ilginç makaleler...