Sendo assim, há na linguagem C diversas funções que nos auxiliam a manipular as Strings, evitando a necessidade do uso de grande quantidade de linhas de códigos.
FUNÇÃO STRLEN
A função strlen é acrônimo de String Length, e como o próprio nome sugere usamos essa função para encontrar o tamanho de uma string, ou seja, a quantidade de caracteres.
A função strlen retorna um valor inteiro referente à quantidade de caracteres da função. Essa contagem é feita passando caractere por caractere da string até chegarmos ao caractere ‘\0’ que, na linguagem C, é o nulo (NULL). É importante sabermos que todas as strings são terminadas com nulo, ou seja, enquanto o caractere nulo (‘\0’) não for encontrado é incrementado 1 (um) ao contador e é passado para o próximo caractere.
A função strlen tem várias aplicações, podemos usar como exemplo a necessidade de contar a quantidade de caracteres para verificar se o usuário informou corretamente um documento como o CPF que tem sempre 11 (onze) caracteres. Chamada da função: strlen(vetor); que o usuárioeja contar. Para melhor entendimento veja a aplicação da função strlen:
A função strlen retorna um valor inteiro referente à quantidade de caracteres da função. Essa contagem é feita passando caractere por caractere da string até chegarmos ao caractere ‘\0’ que, na linguagem C, é o nulo (NULL). É importante sabermos que todas as strings são terminadas com nulo, ou seja, enquanto o caractere nulo (‘\0’) não for encontrado é incrementado 1 (um) ao contador e é passado para o próximo caractere.
A função strlen tem várias aplicações, podemos usar como exemplo a necessidade de contar a quantidade de caracteres para verificar se o usuário informou corretamente um documento como o CPF que tem sempre 11 (onze) caracteres. Chamada da função: strlen(vetor); que o usuárioeja contar. Para melhor entendimento veja a aplicação da função strlen:
main() { char *teste = "Manipulaçao de Strings"; int tam = strlen(teste); printf("%d\n",tam); getch(); }
Esse programa conta a quantidade de caracteres de teste e imprime na tela 22.
Abaixo vemos uma função com o mesmo funcionamento da função strlen:
int tamstr(char *str) { int i = 0; while(*(str+i) != '\0') i++; return i; }
FUNÇÃO STRCAT
main() { char teste[] = "Manipulacao de Strings", teste2[] = " - strcat"; printf("%x\n", teste); strcat(teste,teste2); puts(teste); getch(); }
No programa acima concatenamos a string “teste” com a string teste2 informando a função “strcat(teste,teste2);”. A concatenação é feita no primeiro vetor (teste = “Manipulacao de Strings - strcat”) e o segundo vetor permanece com o mesmo conteúdo (teste2 = “- strcat”).
FUNÇÃO STRCMP
A função strcmp é acrônimo de String Comparison, e como o próprio nome sugere usamos essa função para comparar duas strings. A função STRCMP compara as strings, e devolve apenas 2 valores, 0 caso forem iguais (verdadeiro), um valor maior que zero que as strings não são iguais e que o primeiro caractere que não é igual entre elas é maior na primeira string, já um valor abaixo de zero o caractere diferente é maior na segunda string. A comparação termina após a função encontrar o NULO na string ou ao encontrar algum caractere diferente.Exemplo 1:
main() { char teste[] = "Manipulacao de Strings", teste2[] = "Manipulacao de Strings"; strc== 0 ? puts("iguais") : puts("Sao diferentes"); getch(); }No exemplo acima o retorno é 0, ou seja, as strings são iguais.
Exemplo 2:
main() { char teste[] = "Manipulacao de Strings", teste2[] = "Manipulacao de strings"; printf("\n\n%d \n\n", strcmp(teste,teste2)); strcmp(teste,teste2) == 0 ? puts("Sao iguais") : puts("Sao diferentes"); getch(); }Observe que a letra 's' de uma das string está em maiúsculo e da outra em minusculo. Sendo assim, nesse segundo exemplo o retorno é -1, por que S < s, que equivalem a a 83 e 115 na tabela ASCII respectivamente.
FUNÇÃO STRCPY
A função strcpy é acrônimo de String Copy, e como o próprio nome sugere usamos essa função para copiar o conteúdo de uma string para outra. A função pode vir a ser muito útil podendo copiar todo o conteúdo de uma string para a outra, ou podemos também copiar strings a partir de posições específicas, mas deve-se estar atento em seu tring é copiadra outro lugar, esta pode se sobrepor em outra, ou pode não ter espaço suficiente para esta, o que pode acabar ocorrendo um comportamento não definido. Em seguida veja um exemplo de seu uso:main() { char teste[] = "Manipulacao de Strings", teste2[] = "strcpy - "; strcpy(&teste2[9],&teste[15]); puts(teste2); getch(); }
Neste programa a string teste está sendo copiada para a string teste2, no entanto está sendo indicado de qual posição isso deve ser feito, então, observe que está sendo copiado de teste2 todo o conteúdo a partir da posição 15 para a string teste a partir da posição 9, logo o resultado deste programa é “strcpy – Strings”.
FUNÇÃO TOLOWER
A função tolower pa uma string uum para minúsculo desde que este pertença as letras de A-Z.A função retorna o caractere convertido para minúsculo. Essa função pode ser usada para padronizar os dados de um programa tornando qualquer caractere maiúsculo digitado pelo usuário em um caractere minúsculo. Exemplo:
main() { char teste[] = "MANIPULACAO DE STRINGS"; int i; puts(teseste[i] != '\0+) putchar(tolower(teste[i])); getch(); }
A saída desse programa será: manipulação de strings.
A implementação dessa função é simples e se faz com o auxílio da tabela ASCII:
char Mtom(char st){ if((st >= 65)&&(st <= 90)){ return(st + 32); return(st); } }
FUNÇÃO STRLWR
Além da função tolower, existe outra função com o objetivo semelhante. A função strring inteira nvés de fazer caractere por caractere.Exemplo:
main() { char str[] = "MANIPULACAO DE STRINGS!"; strlwr(str); puts(str); getch(); return 0; }
A saída será "manipulacao de strings!".
FUNÇÃO TOUPPER
A função toupper passa caracteres de uma string um a um para maiúsculo desde que este pertença as letras de a-z.A função retorna o caractere convertido para maiúsculo. Essa função pode ser usada para padronizar os dados de um programa tornando qualquer caractere minúsculo digitado pelo usuário em um caractere maiúsculo. Exemplo:
main() { char teste[] = "manipulacao de strings"; int i; puts(teste); for(i=0;teste[i] != '\0';i++) putchar(tolower(teste[i])); getch(); }
FUNÇÃO STRUPR
Além da função toupper, existe outra função com o objetivo semelhante. A função strupr converte a string inteira para maiúsculo ao invés de fazer caractere por caractere.Exemplo:
main() { char str[] = "manipulacao de strings!"; strupr(str); puts(str); getch(); return 0; }
A saída será "MANIPULACAO DE STRINGS!".
FUNÇÃO STRSTR
strstr(string1, string2);
A função strstr deve ser chamada com 2 parâmetros do tipo string, e procura a primeira ocorrência de string1 em string2. Se não for encontrado é retornado NULL e se encontrado é retornado um ponteiro apontando para a primeira ocorrência de string2 em string1.
Exemplo:
#includemain() { char str1[] = "strings", str2[] = "Manipulacao de strings!"; if(strstr(str2, str1) == NULL) printf("Nao ha ocorrencia.\n"); else printf("Endereco HEX: %x\n",strstr(str2, str1)); getch(); return 0; }