La secuencia de C ++
C ++ proporciona una representación de cadena de los dos tipos siguientes:
- cadenas estilo C
- C ++ tipo de clase de cadena introdujo
cadenas estilo C
cadenas estilo C se originaron en el lenguaje C y C ++ sigue siendo apoyada. Cadena se utiliza realmente carácternulo array '\ 0' unidimensional de caracteres terminados.Por lo tanto, una cadena terminada en cero que contiene los caracteres de la cadena.
Las siguientes afirmaciones crear e inicializar una cadena "Hola". Desde el final de la matriz para almacenar el carácter nulo, por lo que el tamaño de la matriz de caracteres que la palabra "Hola" es más que un número de caracteres.
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
reglas de la inicialización del campo en base, puede escribir la declaración anterior la siguiente declaración:
char greeting[] = "Hello";
La siguiente es una cadena de C / C ++ definido en la memoria, dijo:
De hecho, no es necesario el carácternuloal final de la constante de cadena. Cuando el C ++ array compilador inicialización, automáticamente '\ 0' en el extremo de la cadena. Vamos a tratar de la cadena de salida por encima de:
#include <iostream> using namespace std; int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; cout << "Greeting message: "; cout << greeting << endl; return 0; }
Cuando el código se compila y ejecuta, produce los siguientes resultados:
Greeting message: Hello
C ++ tiene una gran cantidad de funciones para manipular cadena terminada en cero de: compatible con una amplia gama de funciones que manipulan cadenas terminadas en cero:
序号 | 函数 & 目的 |
---|---|
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 的第一次出现的位置。 |
El siguiente ejemplo usa algunas de las funciones anteriores:
#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; }
Cuando el código se compila y ejecuta, produce los siguientes resultados:
strcpy( str3, str1) : Hello strcat( str1, str2): HelloWorld strlen(str1) : 10
En clase String C ++
biblioteca estándar de C ++ proporciona un tipo de clasehebra soporta todas las operaciones descritas anteriormente, y también añade muchas más funciones.Vamos a aprender de clase biblioteca estándar de C ++, ahora vamos a echar un vistazo a los siguientes ejemplos:
Ahora usted puede que no haya un conocimiento profundo de este ejemplo, ya que hasta ahora tenemos clases y objetos que no se discuten. Después de lo que ahora puede ver solo en bruto para este ejemplo, y así entender los conceptos orientados a objetos pasará factura y entender esta instancia.
#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; }
Cuando el código se compila y ejecuta, produce los siguientes resultados:
str3 : Hello str1 + str2 : HelloWorld str3.size() : 10