English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este artículo, aprenderá a manejar cadenas en C. Aprenderá a declararlas, inicializarlas y usarlas en varios entradas/operaciones de salida.
La cadena es un conjunto de caracteres. C ++Los lenguajes de programación generalmente utilizan dos tipos de cadenas:
Cadena como objeto de clase de cadena (estándar C ++Clase de cadenas de la biblioteca
Cadena de estilo C (cadena de estilo C)
En la programación en C, el conjunto de caracteres se almacena en forma de array, C ++La programación también admite esta forma. Por lo tanto, se llama cadena de estilo C (C-cadena).
c -La cadena es un array de tipo char que termina con un carácter null, es decir, \0 (el valor ASCII del carácter null es 0).
char str[] = "C++";
En el código anterior, str es una cadena que contiene4caracteres.
A pesar de que “c++” tiene3caracteres, pero se agrega automáticamente el carácter null \0 al final de la cadena.
char str[4] = "C++"; char str[] = {'C','+','+','\0'}; char str[4] = {'C','+','+','\0'};
Al igual que con un array, no es necesario usar todo el espacio asignado para la cadena. Por ejemplo:
char str[100] = "C++";
Vector (vector) ++El programa muestra la cadena de entrada del usuario.
#include <iostream> using namespace std; int main() { char str[100]; cout << "Introduce una cadena: "; cin >> str; cout << "Has introducido: " << str << endl; cout << "\nIngrese otra cadena: "; cin >> str; cout << "Usted ingresó: "<<str<<endl; return 0; }
Resultado de salida
Ingrese cadena: C++ Usted ingresó: C++ Ingrese otra cadena: Programming is fun. Usted ingresó: Programming
Tenga en cuenta que en el segundo ejemplo, solo se muestra “Programming”, no “Programming is fun.”.
Porque el operador de extracción >>, al igual que el método scanf() del lenguaje C, considera que el espacio en blanco “ ” es un carácter de terminación.
Vector (vector) ++El programa lee y muestra la línea de entrada del usuario.
#include <iostream> using namespace std; int main() { char str[100]; cout << "Ingrese una cadena: "; cin.get(str, 100); cout << "Has introducido: " << str << endl; return 0; }
Resultado de salida
Ingrese una cadena: Programming is fun. Has introducido: Programming is fun.
Para leer un texto que contiene espacios, se puede usar la función cin.get(). Esta función tiene dos parámetros.
El primer parámetro es el nombre de la cadena (la dirección del primer elemento del array), el segundo parámetro es la capacidad máxima del array.
En el programa anterior, str es el nombre de la cadena,100 es la capacidad máxima del array.
En C ++En él, también se puede crear un objeto de cadena para almacenar cadenas.
Diferente de usar un array de char, el objeto de cadena no tiene longitud fija y se puede expandir según sea necesario.
#include <iostream> using namespace std; int main() { //Declarar un objeto de cadena string str; cout << "Introduce una cadena: "; getline(cin, str); cout << "Has introducido: " << str << endl; return 0; }
Resultado de salida
Introduce una cadena: Programming is fun. Has introducido: Programming is fun.
En este programa, str se declara una cadena. Luego pregunta al usuario por la cadena.
Además de usar cin>> o cin.get() funciones, se puede usar getline() para obtener una línea de texto de entrada.
La función getline() toma el flujo de entrada como primer parámetro, cin y str como la posición de la línea a almacenar.
Las cadenas se pasan a la función de manera similar,Los arreglos también se pueden pasar a la función。
#include <iostream> using namespace std; void display(char *); void display(string); int main() { string str1; char str[100]; cout << "Introduce una cadena: "; getline(cin, str1); cout << "Introduce otra cadena: "; cin.get(str, 100, '\n'); display(str1); display(str); return 0; } void display(char s[]) { cout << "La matriz de caracteres de entrada es: " << s << endl; } void display(string s) { cout << "La cadena de entrada es: " << s << endl; }
Resultado de salida
Introduce una cadena: Programming is fun. Introduce otra cadena: Really? La cadena de entrada es: Programming is fun. 输入的字符数组为: Really?
在上面的程序中,要求输入两个字符串。它们分别存储在str和str1El array de caracteres ingresado es: Really?1En el programa anterior, se pide que ingrese dos cadenas. Se almacenan respectivamente en str y str
Donde str es un array de char, y str
Es un objeto string.
Luego, tenemos dos funciones display() que escriben una cadena en una cadena.Las únicas diferencias entre estas dos funciones son los parámetros. La primera función display() toma un array de char como parámetro, mientras que la segunda función toma un string como parámetro.El proceso se llama sobrecarga de funciones. Conozca más sobre