String
En C++ no existe un tipo predefinido para manipular cadena de caracteres, Una cadena de caracteres es un arreglo de una dimensión que termina con el carácter especial '\0'
(cero). La forma de declarar una cadena de caracteres es siguiendo la siguiente reglas char name[n]
, podemos utilizar estas reglas de varias formas.
#include <iostream>
using namespace std;
int main()
{
char string1[] = "Hola";
char string2[] = {'H','o','l','a',0};
char string3[] = {'H','o','l','a','\0'};
char string4[5] = "Hola";
char string5[5] = {'H','o','l','a',0};
char string6[5] = {'H','o','l','a','\0'};
return 0;
}
Para poder acceder a elemento de las cadena utilizamos la misma forma el cual accedemos a un simple arreglo.
#include <iostream>
using namespace std;
int main()
{
char string[] = "Hola";
cout << string[2] << endl;
return 0;
}
//-> l
Funciones para cadenas de caracteres (String)
La libreria string.h
tiene una gran cantidad de funciones para trabajar con las cadenas de caracteres, algunas de las funciones más importante son:
strlen
- Devuelve la longitud de la cadena sin tomar en cuenta el carácter del final de la cadena.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char string[] = "Hola";
int i = strlen(string);
cout << "Length of the string is " << i << endl;
return 0;
}
//-> Length of the string is 4
strcpy
- Copia el contenido de origen en destino.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char string1[] = "Hola";
char string2[] = "Mundo";
// (target, source)
strcpy(string1, string2);
cout << string1 << endl;
return 0;
}
//-> Mundo
strncopy
- Copia el contenido de origen en destino basado a lan
cantidad especificada.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char string1[] = "Hola";
char string2[] = "Mundo";
// (target, source)
strncpy(string1, string2, 2);
cout << string1 << endl;
return 0;
}
//-> Mula
strcat
- Concatena el contenido de origen al final de destino.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char string1[] = "Hola";
char string2[] = "Mundo";
// (target, source)
strcat(string1, string2);
cout << string1 << endl;
return 0;
}
//-> HolaMundo
strncat
- Concatena el contenido de origen al final de destino basado a lan
cantidad especificada.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char string1[] = "Hola";
char string2[] = "Mundo";
// (target, source)
strncat(string1, string2, 2);
cout << string1 << endl;
return 0;
}
//-> HolaMu
strcmp
- Compara dos cadenas y devuelve un valor 0 si las dos cadena son iguales o un negativo si cadena a es menor que precede alfabéticamente a cadena b y número positivo mayor que 0 si cadena a es mayor que cadena b.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char string1[] = "Hola";
char string2[] = "Mundo";
int i = strcmp(string1, string2);
cout << "Result of string compare: " << i << endl;
return 0;
}
//-> Result of string compare: -5