Latest web development tutorials

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:

C / C ++ representación de cadena

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:

序号函数 & 目的
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 的第一次出现的位置。

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