strings c with examples
Una mirada intensiva a los conceptos básicos de las cadenas en C ++.
En esta serie de C ++, hasta ahora, hemos discutido principalmente las matrices numéricas en C ++. En este tutorial, discutiremos la manipulación con matrices de caracteres que simplemente llamamos 'cadenas'.
La matriz de caracteres es principalmente una cadena de estilo C compatible con C ++. Además de las matrices de caracteres de estilo C, C ++ también admite una clase de cadena 'std :: cadena'. Además, en este tutorial, discutiremos tanto los tipos de cadenas como la diferencia entre ellas y sobre la programación de cada tipo en C ++.
=> Tenga cuidado con la lista completa de tutoriales de C ++ de esta serie.
Lo que vas a aprender:
Matrices de caracteres (cadenas de estilo C)
La cadena de estilo c es una matriz de caracteres terminada con un carácter nulo ' 0'. Por lo tanto, podemos definir una matriz de tipo char y las dimensiones o el tamaño de las matrices y luego podemos inicializarla en una cadena o matriz de caracteres.
Tenga en cuenta que es el compilador el que termina una cadena con un carácter nulo, por lo que si inicializamos la matriz de caracteres con una cadena (en la comilla doble “”), entonces debemos dejar espacio adicional para el carácter nulo mientras declaramos el tamaño de una matriz. .
Tomemos algunos ejemplos de declaración e inicialización de matrices de caracteres.
|_+_|Todas las definiciones anteriores son definiciones de cadena de estilo C válidas en C ++. Tenga en cuenta que podemos declarar el tamaño real o podemos dejar el tamaño en blanco para que el compilador pueda acomodar el tamaño dependiendo de la cadena que inicializamos.
Tomemos un Ejemplo de lectura y escritura de matriz de caracteres en C ++
A continuación se muestra un programa simple que lee la cadena usando cin y la genera usando cout.
|_+_|Salida 1:
SoftwareTestingHelp.com
ingresaste: SoftwareTestingHelp.com
Salida 2:
Esta es una cuerda estilo C
ingresaste: Este
Si comparamos ambos resultados, vemos que cuando ingresamos la primera cadena “SoftwareTestingHelp.com”, se imprimió tal como está.
Pero en la segunda salida, aunque ingresamos la cadena como 'Esta es una cadena de estilo C', la salida fue solo 'Esto'.
La diferencia en la salida se debe a que el operador '>>' de cin que se utiliza para leer la cadena se trata como la función 'scanf' de C, que lee solo hasta que se encuentra el espacio. Por tanto, 'cin with >>' es adecuado para leer matrices de caracteres sin espacio.
cómo escribir casos de prueba de regresión
Por lo tanto, aunque se encontró el segundo espacio de salida, la función cin lo tomó como el final de la cadena y leyó solo la primera palabra.
Para leer una línea completa de caracteres, incluidos los espacios, C ++ usa la función 'obtener'.
A continuación, se muestra un programa de ejemplo que utiliza la función get:
|_+_|Producción:
Esto es softwareTestinghelp.com
entraste: Esto es softwareTestinghelp.com
Como se muestra en el ejemplo , la función get de cin usa dos argumentos. El primer argumento es la variable de matriz de caracteres en la que se leerá la cadena, mientras que el segundo argumento es el tamaño máximo de la matriz.
Las cadenas de estilo C también admiten numerosas funciones de cadena que permiten a los usuarios manipular las cadenas. Estas funciones se definen en el encabezado 'cstring'.
A continuación, presentamos una tabla que enumera varias funciones de cadena que se pueden utilizar para manipular cadenas de estilo C.
No | Función | Argumentos | Descripción |
---|---|---|---|
1 | strcpy | s1, s2 | Copia la cadena s2 en la cadena s1 |
2 | strcat | s1, s2 | Agrega o concatena la cadena s2 al final de la cadena s1 |
3 | strlen | s1 | Devuelve la longitud de la cadena s1 |
4 | strcmp | s1, s2 | Devuelve 0: s1 y s2 son iguales <0:s1 |
5 | strchr | s1, ch | Devuelve un puntero a la primera aparición del carácter ch en la cadena s1 y la cadena de ahí en adelante |
6 | strstr | s1, s2 | Devuelve la primera aparición de la cadena s2 en la cadena s1 |
El siguiente programa muestra el uso de algunas de estas funciones en C ++:
|_+_|Producción:
Longitud de firstStr: 31
Cadena resultante (secStr): softwareTesting
Comparando firstStr y secStr: -31
SecStr concatenado: softwareTesting para usted
La primera aparición de i en firststr en: s es softwareTestingHelp.com
Clase de cadena en C ++
La cadena en C ++ definida por la clase 'std :: cadena' es una representación del flujo de caracteres en un objeto. En otras palabras, la clase String es una colección de objetos de cadena. Esta clase de cadena es parte del espacio de nombres estándar y se define en el encabezado 'cadena.h'.
Analicemos algunas de las diferencias básicas entre la clase de cadena y la matriz de caracteres.
- Si bien las matrices de caracteres que discutimos anteriormente se asignan estáticamente durante el tiempo de compilación, las cadenas son objetos y, por lo tanto, se pueden asignar dinámicamente.
- Dado que las matrices de caracteres son de naturaleza estática, no se pueden reducir ni expandir una vez definidas. Por lo tanto, si tenemos una matriz de caracteres de tamaño 100 y la inicialicé con la palabra 'Hola', el espacio restante se desperdicia.
Char mystr (100) = 'Hola';
Aquí, las 95 ubicaciones restantes se desperdician.
Al contrario de esto, los objetos de cadena son de naturaleza dinámica y ocuparán el espacio exacto para el valor.
- Las matrices de caracteres tienen un rendimiento más rápido, mientras que las cadenas son más lentas.
- Las matrices de caracteres tienen pocas funciones operando en ellas que puedan manipularlas. La clase String tiene numerosas funciones, incluidas las funciones de iterador.
Estas son algunas de las diferencias básicas entre la matriz de caracteres y la clase de objeto de cadena.
A continuación, veremos algunos ejemplos de clase de cadena junto con algunas operaciones básicas que se realizan en objetos de la clase de cadena.
Un ejemplo para declarar e inicializar la clase de cadena.
|_+_|En el ejemplo anterior, hemos declarado e inicializado un objeto de cadena usando la clase 'cadena'. Este es un ejemplo simple. Ahora tengamos un programa para leer la cadena del usuario y también demostrar algunas funciones de cadena, incluyendo encontrar la longitud y comparar dos cadenas.
|_+_|Producción:
Ingrese la cadena
SoftwareTestingAyuda
La cadena ingresada es: SoftwareTestingHelp
La longitud de la cadena str es: 19
Dos cuerdas son iguales
Nuevo str1: SoftwareTestingHelp.com
str nueva longitud: 0
En la ilustración anterior, hemos utilizado numerosas funciones de cadena para manipular las cadenas. Después de declarar la cadena, usamos la función 'getline' de la clase de cadena para leer la cadena de la entrada estándar.
Una vez que leemos la cadena, encontramos su longitud usando la función 'longitud'. Si necesitamos comparar dos cadenas para evaluar si son iguales o no, entonces podemos usar la función 'comparar' de la clase de cadena. Si la función devuelve 0, entonces las dos cadenas son iguales; de lo contrario, la función devuelve un valor distinto de cero.
Otra función más es agregar otra cadena al final de la cadena existente. Esta es la función 'agregar'. En este ejemplo, agregamos '.com' a la cadena ya existente str1 con el valor 'softwaretesting'.
La última función del ejemplo es la función clear que se usa para borrar el contenido del objeto de cadena que invoca. En este ejemplo, borramos el contenido del objeto str para que su longitud sea 0.
Conclusión
En este tutorial, hemos cubierto la matriz de caracteres que también se llama cadenas de estilo C junto con los conceptos básicos de la clase de cadena. La clase String viene con más utilidades como la clase iteradora, ya que es una clase contenedora.
¡Veremos más sobre la clase de cadena y sus funciones en nuestros próximos tutoriales de STL!
=> Visite aquí para ver la serie de formación C ++ para todos.
Lectura recomendada
- Orden de Shell en C ++ con ejemplos
- Funciones de fecha y hora en C ++ con ejemplos
- Tutorial Java String con String Buffer y String Builder
- Orden de selección en C ++ con ejemplos
- Funciones de cadena de Python
- Tutorial de Python DateTime con ejemplos
- Cortar comando en Unix con ejemplos
- 70+ MEJORES Tutoriales de C ++ para aprender programación C ++ GRATIS