Latest web development tutorials

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:

C / C ++ representasi string

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:

序号函数 & 目的
1strcpy(s1, s2);
复制字符串 s2 到字符串 s1。
2strcat(s1, s2);
连接字符串 s2 到字符串 s1 的末尾。
3strlen(s1);
返回字符串 s1 的长度。
4strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。
5strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
6strstr(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