¿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