Red de conocimiento informático - Computadora portátil - ¿Qué significa cadena en lenguaje C? ¿Qué puede controlar?

¿Qué significa cadena en lenguaje C? ¿Qué puede controlar?

Una cadena en un lenguaje de programación encierra varios caracteres entre comillas dobles. La clase String es inmutable (final) y cualquier cambio en la clase String devolverá un nuevo objeto de clase String.

En este caso, una referencia a la clase String se pasa a un método, y cualquier cambio realizado por el método en la String no afectará al objeto señalado por la referencia original, similar a los datos básicos. tipos.

cadenas1, s2;

s1="abc";

s2=s1; p>

p>

1. Uso

Constructor de clase de cadena:

string(constchar*s); //string(constchar*s); (constchar*s ); //string(c); s inicializar string(intn, charc); //inicializar con n caracteres c

Además, la clase de cadena también admite constructores predeterminados y constructores de copia. como strings1; strings2 = "hola"; La excepción length_error se produce cuando la cadena construida es demasiado larga para expresarla.

2. Operaciones de caracteres de cadena:

constcharamp; operador[](intn) const; at(intn) charamp; (intn);

Tanto el operador [] como at() devuelven la posición del enésimo carácter en la cadena actual, pero la función at proporciona verificación de rango y arroja una excepción out_of_range cuando está fuera de rango. El operador [] no proporciona acceso comprobado.

constchar*data()const; //devuelve una matriz de caracteres c terminada en nulo constchar*c_str()const; //devuelve una cadena c terminada en nulo

intcopy(char) *s, intn, intpos=0) const; // Copia los n caracteres de la cadena actual que comienza con pos en la matriz de caracteres que comienza en s.

Información ampliada:

1. Descripción característica de la cadena:

intcapacity()const; //Devuelve la capacidad actual (es decir, sin aumentar la memoria). ) El número de elementos que se pueden almacenar en la cadena)

intcapacity()const; //Devuelve la capacidad actual (es decir, el número de elementos que se pueden almacenar en la cadena)

intmax_size()const; //Devuelve la longitud máxima de la cadena que se puede almacenar en el objeto de cadena

intsize()const; //Devuelve el tamaño de la cadena actual

intlength()const; //Devuelve la longitud de la cadena actual

intlength()const; //Devuelve la longitud de la cadena actual

intlength?

boolempty()const; // ¿Devuelve si la cadena actual está vacía?

voidresize(intlen, charc); //Establece el tamaño de la cadena actual en len y completa la parte insuficiente con el carácter c

2.

El operador sobrecargado de clase de cadena gt; gt; se usa para operaciones de entrada y el mismo operador sobrecargado lt; La función getline(istreamamp; in, stringamp; s); se utiliza para leer una cadena del flujo de entrada en s, separada por el carácter de nueva línea '\n'.

3. Asignación de cadena:

stringamp; operator=(constringamp; s); //asignar cadena s a la cadena actual

stringamp; s); //asignar cadena s con tipo c

stringamp; asignar(constchar*s, intn);

stringamp; n cadenas s que comienzan con c

stringamp; asignar(constringamp;s); //asigna la cadena s a la cadena actual

stringamp;assign(intn, charc

stringamp; asignar(constringamp; s, intstart, intn); //asignar los n caracteres c a la cadena actual

stringamp; asignar(const_iteratorfirst, const_itertorlast);/ /asignar la porción de la cadena entre el primer y el último iterador a la cadena actual

4. Conexión de cadena:

stringamp.operator = (constringamp; s); //conecta la cadena s al final. de la cadena actual

stringamp; intn); //Conecta los primeros n caracteres de la cadena de tipo c al final de la cadena actual

stringamp;s; //Y operador = ()Igual

stringamp;append(amp;append(const_iteratorfirst, const_iteratorlast); //Conecta la parte entre iteratorfirst y last al final de la cadena actual

5.Subcadena de caracteres de la cadena:

stringsubstr(intpos=0, intn=npos)const; //Devuelve una cadena que consta de n caracteres a partir de pos

6. ; s2); // Intercambia la cadena actual con el valor de s2

7. Función de búsqueda de clase de cadena:

intfind (charc, intpos=0) // from pos; comience a encontrar el carácter c en la posición actual de la cadena

intfind(constchar*s, i

ntpos=0)const; //desde pos comienza a buscar la cadena s en la posición actual de la cadena

intfind( constchar*s, intpos, intn)const //Comienza desde pos para encontrar la cadena s en posición actual La posición de los primeros n caracteres en la cadena

intfind(constringamp; s, intpos=0) const; //Comienza desde pos para encontrar la posición de la cadena s en la cadena actual //Si la búsqueda es exitosa, luego Devuelve la posición y devuelve el valor de la cadena: :Si la búsqueda falla, devuelve la cadena: :El valor de npos

intrfind(charc, intpos=npos)const; /Comienza desde pos y busca hacia adelante y hacia atrás La posición del carácter c en la cadena actual

intrfind(constchar*s, intpos=npos)const;

intrfind(constchar*s, intpos, intn=npos)const;

intrfind(constringamp;s,intpos=npos)const;

intrfind(constringamp;s,intpos=npos)const; posición del carácter c en la cadena actual, comenzando desde pos y avanzando hacia atrás y hacia adelante

intrfind(constring&s,intpos=npos)const //busca la cadena s en los primeros n caracteres de la cadena compuesto por la ubicación de la cadena actual, el éxito devuelve la ubicación, el fracaso devuelve el valor de la cadena::npos

intfind_first_of(charc, intpos=0)const //desde pos comienza a encontrar la ubicación del primero; aparición del carácter c

intfind_first_of(constchar*s,intpos=0)const;

intfind_first_of(constchar*s,intpos,intn)const;

intfind_first_of( conststring&s,intpos=0 )const; //busca la posición del primer carácter en la cadena actual que está en la matriz que consta de los primeros n caracteres de s, comenzando desde pos.

Encuentra el primer carácter de la cadena actual La posición en la matriz que consta de los primeros n caracteres de s.

Si la búsqueda falla, se devolverá una cadena: npos

intfind_first_not_of(charc, intpos=0)const;

intfind_first_not_of(constchar*s, intpos=0)const;

intfind_first_not_of(constchar*s,intpos,intn)const;

intfind_first_not_of(constringamp;s,intpos=0)const //busca de la cadena actual la primera cadena no-de s donde el carácter ocurre, el error devuelve una cadena:: npos

intfind_last_of(charc, intpos=npos) const;

intfind_last_of(constchar*s, intpos=npos) const;

intfind_last_of(constchar*s, intpos, intn=npos)const;

intfind_last_of(constringamp;s, intpos=npos)const

intfind_last _not_of(constcharc, intpos= npos)const ;

intfind_last_not_of(constchar*s, intpos=npos)const;

intfind_last_not_of(constchar*s, intpos, intn)const;

intfind_last_not_of (constringamp; s, intpos=npos) constante; //find_last_not_of y find_last_not_of son similares a find_first_of y find_first_not_of, excepto que buscan de atrás hacia adelante.

Función de reemplazo de cadena: replace(intp0, intn0, constchar*s, intn); // Elimina n0 caracteres a partir de p0 y luego inserta los primeros n caracteres de la cadena s en p0

stringamp;replace(intp0,intn0,constringamp;s);// Elimina n0 caracteres a partir de p0.

Luego inserte la cadena s en p0

stringamp; replace(intp0, intn0, constringamp;s, intpos, intn); // Elimina n0 caracteres a partir de p0 y luego inserte la cadena s en p0 n caracteres de pos.

stringamp amp; replace(intp0, intn0, intn, charc); // Elimina n0 caracteres a partir de p0 y luego inserta n caracteres c en p0

stringamp; , iteratorlast0, constchar*s); //reemplaza la parte entre [first0, last0) con la cadena s

stringamp; replace(iteratorfirst0, iteratorlast0, constchar*s, intn); entre [first0, last0) con s hasta los primeros n caracteres de s.

stringamp;replace(iteratorfirst0,iteratorlast0,constringamp;s);//reemplaza la parte entre [first0, last0) con la cadena s

stringamp;replace(iteratorfirst0,iteratorlast0, intn, charc); // Reemplazar la parte entre [first0, last0) con string n

stringamp; replace(iteratorfirst0, iteratorlast0, const_iteratorfirst, const_iteratorlast); // Reemplazar [first0, last0) La parte entre se reemplaza con la cadena entre [primero, último).

Insertar función de cadena:

stringamp; insert(intp0, constchar*s);

stringamp; insert(intp0, constchar*s, intn);

stringamp;insert(intp0,constringamp;s);

stringamp;insert(intp0,constringamp;s,intpos,intn);

stringamp; intp0, intn, charc); // esta función inserta n caracteres c en p0

iteratorinsert(iteratorit, charc); // Inserta el carácter c en él y devuelve la posición del iterador después de la inserción

voidinsert(iteratorit, const_iteratorfirst, const_iteratorlast); // Inserta los caracteres entre [primero, último] allí

voidinsert(iteratorit, intn, charc

String class); función de eliminación

iteratorerase(iteratorfirst, iteratorlast); // Elimina todos los caracteres entre [primero, último] y devuelve la posición del iterador después de la eliminación.

iteratorerase(iteratorit); // Elimina el carácter al que apunta y devuelve la posición del iterador después de la eliminación.

stringamp; erase(intpos=0, intn=npos); // Elimina n caracteres comenzando desde pos y devuelve la cadena modificada.

Manejo de iteradores de la clase de cadena:

La clase de cadena proporciona iteradores para recorrido hacia adelante y hacia atrás, lo que proporciona una sintaxis para acceder a caracteres individuales, similar a las operaciones de puntero, y los iteradores no comprobar rangos.

Utilizar string::iterator o string::const_iterator para declarar variables de iterador. const_iterator no permite cambiar la iteración. Las funciones de iterador más utilizadas son

const_iteratorbegin()const; iteratorbegin(); //devuelve el inicio de la cadena

const_iteratorend()const; string

const_iteratorrbegin()const; iteratorrbegin(); //Devuelve la posición del último carácter de la cadena

const_iteratorrend()const; del último carácter de la cadena La posición anterior de un carácter

rbegin y rend se utilizan para el acceso iterativo hacia adelante y hacia atrás, lo que se logra configurando el iterador string::reverse_iterator o string::const_reverse_iterator

Procesamiento de flujo de cadenas:

Esto se logra definiendo las variables ostringstream e istringstream en el archivo de encabezado #includelt;sstreamgt;

Ejemplo:

stringinput("hola, esto es una prueba");

istringstreamis(input);?

strings1, s2, s3 , s4;

isgt;gt;s1gt;gt;s2gt;gt;s3gt;gt;s4; //s1="hola, esto", s2="es", s3="a", s4="test"

ostringstreamos;

oslt;lt;s1lt;lt;s2lt;lt;s3lt;lt;s4;

coutlt;lt; os.str();

Referencia:

Enciclopedia Baidu - cadena