Strings. Todas as funções apresentadas neste documento estão no arquivo de cabeçalho string.h. - PDF
Download "Strings. Todas as funções apresentadas neste documento estão no arquivo de cabeçalho string.h."
Bento Castelhano Dreer
1 Strings Todas as funções apresentadas neste documento estão no arquivo de cabeçalho string.h. 1 Determinando o tamanho de uma string Para determinar o tamanho de uma string use a função strlen( ). Sua sintaxe é: strlen(string) /* Determinando o tamanho de uma string usando a função strlen() */ char string[20]; printf("determinando o tamanho de uma string\n"); printf(" \n"); printf("digite a string :"); scanf("%s",string); printf("a string tem %d carateres.\n\n",strlen(string)); 2 Copiando uma string em outra Para copiar uma string em outra use a função strcpy( ). Sua sintaxe é: strcpy(destino, origem) /* Copiando uma string em outra usando a função strcpy() */ char string1[10], string2[10]; printf("copiando uma string em outra\n"); printf(" \n");
2 printf("digite string1 :"); printf("string1 = %s\n",string1); printf("string2 = %s\n",strcpy(string2,string1)); Na prática, todo conteúdo de string2 é substituído por string1. 3 Unindo duas strings Para unir duas strings use a função strcat( ). Sua sintaxe é: strcat(destino, origem) /* Unindo duas strings usando a função strcat() */ char string1[100], string2[10]; printf("unindo duas strings\n"); printf(" \n"); printf("digite string1 :"); printf("digite string2 :"); printf("unindo string1 a string2 : %s\n\n",strcat(string2,string1)); 4 Anexando caracteres de uma string em outra Para anexar caracteres de uma string em outra use a função strncat( ). Sua sintaxe é : strncat(destino, origem, nr_caracteres) /* Anexando caracteres de uma string em outra usando a função strncat()*/
3 char string1[20],string2[6]="aeiou"; printf("anexando caracteres de uma string em outra\n"); printf(" \n"); printf("entre com string1 :"); printf("string2 = %s\n\n",string2); printf("string1 + 3 caracteres de string 2 = %s\n",strncat(string1,string2,3)); 5 Comparando duas strings Para comparar duas strings use a função strcmp( ). Sua sintaxe é: strcmp(string1,string2) Se as strings forem iguais a função retorna zero, se string1 for maior a função retorna um valor menor que zero e se string2 for maior a função retorna um valor maior que zero. /* Comparando duas strings com a função strcmp() */ char string1[20],string2[20]; int retorno; printf("comparando duas strings\n"); printf(" \n"); printf("entre com a primeira string :"); printf("entre com a segunda string :"); retorno = strcmp(string1,string2); if(retorno == 0) printf("as strings são iguais.\n"); else if(retorno < 0) printf("a string1, maior.\n");
4 else printf("a string2, maior.\n"); OBSERVAÇÕES: 1. A função strcmp( ) possui uma variante, a função strncmp( ) que compara os n primeiros caracteres de duas strings. Sua sintaxe é: strncmp(string1,string2,nr_caracteres) 2. Existem ainda as funções stricmp( ) e strncmpi( ) que comparam duas strings sem considerar a caixa das letras (maiúsculas ou minúsculas). 6 Convertendo strings em números Para converter strings em números utilize as funções abaixo: FUNÇÃO atof(string) atoi(string) atol(string) strtod(string) strtol(string) CONVERTE STRINGS EM float int long int double long /* Convertendo strings em números */ #include <stdlib.h> char string1[20],string2[20]; printf("convertendo strings em números\n"); printf(" \n"); printf("entre com a primeira string :"); printf("entre com a segunda string :"); printf("string1 + string2 = %f",atof(string1) + atof(string2));
5 Observações: 1. Toda string termina com \0, esse caracter é equivalente ao inteiro 0 (zero). O programa coloca automaticamente esse caracter no fim da string, então não se esqueça de contar que vc precisa dessa casa no vetor!!! 2. Se você for ler mais de uma string (ou caracter), a partir da segunda leitura feita com scanf(), precisa colocar um caracter \n antes do formato da entrada. Se você não fizer isso, o valor da string que está lendo não será o esperado!!! scanf( \n%s, string); 3. Note que você não deve digitar o & antes do nome do vetor para ler uma string!!! Isso acontece porque o nome do vetor já é o próprio endereço de memória da primeira posição do vetor. 4. Como o nome do vetor é um endereço de memória, se você tiver dois vetores: cadeia1 e cadeia2 e fizer cadeia1=cadeia2, o resultado não é o esperado!!!! Ele vai alterar o endereõ de memória do vetor cadeia1 e vai perder o seu conteúdo!!!! Use as funções de manipulação de strings! 5. Normalmente, quando se usa scanf(), essa função assume que se você digitou espaço em branco, é por que terminou de digitar a entrada. Por isso, toda string só será lida até o primeiro espaço em branco. Para ler a string toda, incluindo espaços em branco, faça: scanf( %[A Z a z]s,string)