English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Vector (vector)++ Tutoriales básicos

Vector (vector)++ Control de flujo

Vector (vector)++ Función

Vector (vector)++ Arreglo y cadena

Vector (vector)++ Estructuras de datos

Vector (vector)++ Clases y objetos

Vector (vector)++ Punteros

Vector (vector)++ Herencia

Vector (vector)++ Tutorial de STL

Vector (vector)++ Manual de referencia

Vector (vector)++ Cadena

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)

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).

¿Cómo definir una cadena de estilo C?

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.

Métodos de definición de cadenas

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++";

Ejemplo1:Usando C ++La cadena lee palabras

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.

Ejemplo2:C ++La cadena se lee como una línea de texto

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.

Objeto de cadena

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.

Ejemplo3:使用C的数据类型字符串 ++Cadena

#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.

Pasar una cadena a la función

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