C ++ string yang
C ++ menyediakan representasi string dari dua jenis berikut:
- string C-gaya
- C ++ jenis kelas string diperkenalkan
string C-gaya
string C-gaya berasal dari bahasa C dan C ++ terus didukung. String sebenarnya digunakan karakternull array yang '\ 0' satu-dimensi karakter diakhiri.Oleh karena itu, null-string diakhiri yang berisi karakter dari string.
Pernyataan berikut membuat dan menginisialisasi "Halo" string. Sejak akhir array untuk menyimpan karakter null, sehingga ukuran array karakter dari kata "Hello" lebih dari sejumlah karakter.
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
Berdasarkan aturan inisialisasi array, Anda dapat menulis pernyataan di atas pernyataan berikut:
char greeting[] = "Hello";
Berikut ini adalah serangkaian C / C ++ didefinisikan dalam memori, ia berkata:
Bahkan, Anda tidak perlu karakternullpada akhir string konstan. Ketika C ++ inisialisasi compiler array, otomatis '\ 0' di akhir string. Mari kita coba output string di atas:
#include <iostream> using namespace std; int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; cout << "Greeting message: "; cout << greeting << endl; return 0; }
Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:
Greeting message: Hello
C ++ memiliki banyak fungsi untuk memanipulasi null-string diakhiri dari: mendukung berbagai fungsi yang memanipulasi string null-dihentikan:
序号 | 函数 & 目的 |
---|---|
1 | strcpy(s1, s2); 复制字符串 s2 到字符串 s1。 |
2 | strcat(s1, s2); 连接字符串 s2 到字符串 s1 的末尾。 |
3 | strlen(s1); 返回字符串 s1 的长度。 |
4 | strcmp(s1, s2); 如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。 |
5 | strchr(s1, ch); 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。 |
6 | strstr(s1, s2); 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。 |
Contoh berikut ini menggunakan beberapa fungsi di atas:
#include <iostream> #include <cstring> using namespace std; int main () { char str1[10] = "Hello"; char str2[10] = "World"; char str3[10]; int len ; // 复制 str1 到 str3 strcpy( str3, str1); cout << "strcpy( str3, str1) : " << str3 << endl; // 连接 str1 和 str2 strcat( str1, str2); cout << "strcat( str1, str2): " << str1 << endl; // 连接后,str1 的总长度 len = strlen(str1); cout << "strlen(str1) : " << len << endl; return 0; }
Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:
strcpy( str3, str1) : Hello strcat( str1, str2): HelloWorld strlen(str1) : 10
Dalam C ++ class String
C ++ standar perpustakaan menyediakan tipe kelasstring mendukung semua operasi yang dijelaskan di atas, dan juga menambahkan lebih banyak fitur.Kita akan belajar C ++ standar kelas perpustakaan, sekarang mari kita lihat contoh berikut:
Sekarang Anda mungkin belum pemahaman contoh ini, karena sejauh ini kami memiliki kelas tidak dibahas dan objek. Setelah jadi sekarang Anda dapat melihat hanya kasar untuk contoh ini, dan begitu memahami konsep-konsep berorientasi objek kembali sekitar dan memahami hal ini.
#include <iostream> #include <string> using namespace std; int main () { string str1 = "Hello"; string str2 = "World"; string str3; int len ; // 复制 str1 到 str3 str3 = str1; cout << "str3 : " << str3 << endl; // 连接 str1 和 str2 str3 = str1 + str2; cout << "str1 + str2 : " << str3 << endl; // 连接后,str3 的总长度 len = str3.size(); cout << "str3.size() : " << len << endl; return 0; }
Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:
str3 : Hello str1 + str2 : HelloWorld str3.size() : 10