Aula 2.15 - Funções para manipular strings em C
Na ultima aula, aula 2.14, você aprendeu sobre strings, hoje apresentarei algumas funções que te auxiliam na manipulação de strings. Para utilizar as funções apresentadas abaixo é necessário incluir a bibiotecla string.h . Portanto na linha abaixo de #include <stdio.h> adicione também #include <string.h> .
1- Para saber o tamanho de uma string, podemos utilizar a função strlen que retorna quantos caracteres a string possui (sem contar o '\0').
Exemplo:
char palavra[] = "Limon";
int tamanho;
tamanho=strlen(palavra);
printf("%d",tamanho);
*Caso tenha lido uma string com fgets e você não removeu o '\n' então vai retornar 6 em vez de 5 caracteres na palavra Limon.
2- Se você quiser copiar uma string para outra string, você pode fazer isso usando a função strcpy.
Exemplo:
char palavra[] = "Limon";
char destino[5];
strcpy(destino,palavra);
printf("%s = %s",palavra,destino);
Note que a copia é realizada da string da direita para a string da esquerda quando chama a função.
3- Para concatenar duas strings (juntar elas) é simples usando a função strcat, mas note que não existirá nenhum espaço ou caractere separando as strings.
Exemplo:
char palavra[] = "Limon";
char palavra2[] = "Tec";
strcat(palavra,palavra2);
printf("%s",palavra);
A saída da string "palavra" ficará: LimonTec
Note que a string da direita é juntada com a string da esquerda quando chama a função.
4- Se você deseja comparar duas strings, para saber qual é maior alfabeticamente basta usar a função strcmp.
Exemplo:
char palavra[] = "Limon";
char palavra2[] = "Tec";
int resposta;
resposta=strcmp(palavra,palavra2);
printf("%d",resposta);
O retorno da função é um número inteiro:
- Zero se as strings forem iguais.
- Menor que zero se a string da esquerda (palavra) for alfabeticamente menor que a string da direita (palavra2).
- Maior que zero se a string da esquerda (palavra) for alfabeticamente maior que a string da direita (palavra2).
5- Para comparar duas string mas ignorando se algum caractere é maiúsculo ou minusculo. Usando a função acima as palavras "Limon" e "limon" são diferentes, mas se usar a função stricmp vai retornar que são iguais, pois ignora case.
Exemplo:
char palavra[] = "Limon";
char palavra2[] = "limon";
int resposta;
resposta=stricmp(palavra,palavra2);
printf("%d",resposta);
O retorno será 0 pois utilizando esta função, considera que as strings do exemplo acima são iguais.
Bom, recomendo que teste as funções citadas acima em seus programinhas. Até a próxima.
Bom, recomendo que teste as funções citadas acima em seus programinhas. Até a próxima.
>> Próxima aula, clique aqui.
COMENTÁRIOS