•
Manipulação
de strings
As funções
de C++ para manipular string estão dentro da biblioteca padrão
cstring.
Sempre que você
usar uma dessas funções deve estar ciente de que o array recepitor
deve conter o espaço necessário para armazenar o resultado!!
| strcpy
( s2, s1 ) |
Copia
o string s1 para o s2. Retorna o valor de s2 |
| strncpy( s2,
s1, size_t ) |
Copia no máximo
size_t caracteres de s1 para s2. Retorna s2. |
| strcat( s1,
s2 ) |
Anexa a string
s2 para o string s1. O primeiro caractere de s2 será gravado por
cima caractere nulo terminal de s1. |
| strncat( s1,
s2, size_t) |
Anexa no maximo
n caracteres de string s2 para o string s1. O primeiro caractere de s2 será
gravado por cima caractere nulo terminal de s1. |
| strcmp( s1,
s2 ) |
Compara
o string s1 com string s2. A função retorna um valor 0,
menor que 0, ou maior que 0, se s1 for igual a, menor que, ou maior que
s2. |
| strncmp( s1,
s2, size_t ) |
Compara até
n caracteres do string s1 com string s2. A função retorna
um valor 0, menor que 0, ou maior que 0, se s1 for igual a, menor que, ou
maior que s2. |
| strlen( s1
) |
Determina
o comprimento de string s1. |
Observe
um exemplo para as funções strcpy e strncpy
#include <iostream>
using std::cout;
using std::endl;
#include <cstring>
// biblioteca para manipulação de strings
int main()
{
char x[] = "Nossa Palavra";
char y[25], z[15];
cout
<< "O string no array x eh: " << x << endl;
cout << "O string no array y eh: " <<
strcpy( y, x ) << endl;
strncpy(
z, x, 2 ); // nao copia o caracter nulo
z[ 14 ] = '\0';
cout
<< "O string no array z eh: " << z << endl;
std::cin;
return 0;
}
Exemplo
com as funções strcat e strncat
#include <iostream>
using std::cout;
using std::endl;
#include <cstring>
int main()
{
char a1[20] = "Mortal ";
char a2[] = "Kombat" ;
cout
<< a1 << "\n" << a2 << endl << endl;
cout << strcat( a1, a2 ) << endl;
cout << "a1 = " << a1 << endl;
cout << strncat ( a1, a2, 3 ) << endl;
std::cin;
return 0;
}
Exemplo
com as funções strcmp e strncmp
#include <iostream>
using std::cout;
using std::endl;
#include <cstring>
int main()
{
char a1[] = "F";
char a2[] = "F";
char a3[] = "t";
char a4[] = "A";
cout
<< strcmp( a1, a2 ) << endl ; // igual 0
cout << strcmp( a1, a3 ) << endl ; //
diferente menor -1
cout << strcmp( a1, a4 ) << endl ;
// diferente maior 1
std::cin;
return 0;
}
Exemplo
com Token
A função
strtok quebra a string em unidades léxicas.
Uma unidade léxica é uma sequencia de caracteres
separados por caracteres delimitadores.
São necessários multiplos strtok para continuar a separar a string.
Por isso, tenha em mente que, as chamadas subsequentes a strtok vão conter
NULL como primeiro argumento. O argumento NULL diz para strtok que a separação
deve continuar apartir da posição na string salva pelo ultimo
strtok.
#include <iostream>
using std::cout;
using std::endl;
#include <cstring>
int main()
{
char token[] = "10;9;8;7";
char *totoken;
totoken
= strtok( token, ";" ); // a função
modifica a string token!!
while ( totoken != NULL )
{
cout << totoken << endl;
totoken = strtok ( NULL,
";" );
}
std::cin;
return 0;
}
Exemplo
para strlen
#include <iostream>
using std::cout;
using std::endl;
#include <cstring>
int main()
{
char a1[20] = "Mortal ";
char a2[] = "Kombat" ;
cout
<< strlen( a1 ) << endl << strlen( a2 ) << endl;
std::cin;
return 0;
}
Perguntas??? Email
|