Rentetan dalam C (Dengan Contoh)

Dalam tutorial ini, anda akan belajar mengenai rentetan dalam pengaturcaraan C. Anda akan belajar untuk menyatakannya, memulakannya dan menggunakannya untuk pelbagai operasi I / O dengan bantuan contoh.

Dalam pengaturcaraan C, rentetan adalah urutan watak yang diakhiri dengan watak nol . Sebagai contoh:

 char c() = "c string"; 

Apabila penyusun menemui urutan watak yang dilampirkan dalam tanda petik ganda, ia menambahkan watak nol pada akhir secara lalai.

Bagaimana untuk menyatakan rentetan?

Inilah cara anda dapat menyatakan rentetan:

 char s(5); 

Di sini, kami telah menyatakan rentetan 5 aksara.

Bagaimana untuk memulakan rentetan?

Anda boleh memulakan rentetan dengan beberapa cara.

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

Mari ambil contoh lain:

 char c(5) = "abcde";

Di sini, kami cuba menetapkan 6 aksara (watak terakhir adalah '') kepada chararray yang mempunyai 5 watak. Ini tidak baik dan anda tidak boleh melakukan ini.

Menetapkan Nilai pada Rentetan

Susunan dan tali adalah warganegara kelas dua di C; mereka tidak menyokong pengendali penugasan setelah diisytiharkan. Sebagai contoh,

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

Catatan: Gunakan fungsi strcpy () untuk menyalin rentetan.

Baca String dari pengguna

Anda boleh menggunakan scanf()fungsi untuk membaca rentetan.

Yang scanf()fungsi membaca jujukan aksara sehingga ia menghadapi ruang kosong (ruang, newline, tab, dan lain-lain).

Contoh 1: scanf () untuk membaca rentetan

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

Pengeluaran

 Masukkan nama: Dennis Ritchie Nama anda Dennis.

Walaupun Dennis Ritchie dimasukkan dalam program di atas, hanya "Dennis" yang disimpan dalam rentetan nama. Ini kerana ada ruang selepas Dennis.

Bagaimana membaca sebaris teks?

Anda boleh menggunakan fgets()fungsi untuk membaca garis rentetan. Dan, anda boleh gunakan puts()untuk memaparkan rentetan.

Contoh 2: fgets () dan meletakkan ()

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

Pengeluaran

 Masukkan nama: Tom Hanks Nama: Tom Hanks 

Di sini, kami telah menggunakan fgets()fungsi untuk membaca rentetan dari pengguna.

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

The sizeof(name)keputusan ke 30. Oleh itu, kita boleh mengambil maksimum 30 aksara sebagai input yang merupakan saiz rentetan nama.

Untuk mencetak rentetan, kami telah menggunakan puts(name);.

Nota: The gets()fungsi juga boleh mengambil input daripada pengguna. Walau bagaimanapun, ia dikeluarkan dari standard C.
Ini kerana gets()membolehkan anda memasukkan panjang watak. Oleh itu, mungkin terdapat limpahan penyangga.

Melewatkan Rentetan ke Fungsi

String dapat diserahkan ke fungsi dengan cara yang serupa dengan tatasusunan. Ketahui lebih lanjut mengenai meneruskan susunan ke fungsi.

Contoh 3: Menghantar rentetan ke Fungsi

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

Rentetan dan Petunjuk

Sama seperti tatasusunan, nama rentetan "reput" kepada petunjuk. Oleh itu, anda boleh menggunakan penunjuk untuk memanipulasi unsur rentetan. Kami mengesyorkan anda untuk memeriksa C Arrays dan Pointers sebelum anda memeriksa contoh ini.

Contoh 4: Rentetan dan Penunjuk

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

Fungsi String Yang Biasa Digunakan

  • strlen () - mengira panjang tali
  • strcpy () - menyalin rentetan yang lain
  • strcmp () - membandingkan dua rentetan
  • strcat () - menggabungkan dua rentetan

Artikel menarik...