


























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Diversas funções para se trabalhar com strings.
Tipologia: Trabalhos
1 / 34
Esta página não é visível na pré-visualização
Não perca as partes importantes!
6. strings 6.1 Determinando o tamanho de uma string Para determinar o tamanho de uma string use a função strlen ( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strlen(string) Exemplo: /* Determinando o tamanho de uma string usando * a função strlen() */
#include <stdio.h> #include <string.h>
int main() { char string[20];
printf("\n"); printf("Determinando o tamanho de uma string\n"); printf("------------------------------------\n"); printf("\n"); printf("Digite a string :"); scanf("%s",&string); printf("\n"); printf("A string tem %d carateres.\n\n",strlen(string)); return(0); } 6.2 Copiando uma string em outra Para copiar uma string em outra use a função strcpy( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strcpy(destino, origem) Exemplo: /* Copiando uma string em outra usando a
#include <stdio.h>
#include <string.h>
int main() { char string1[10], string2[10];
printf("\n"); printf("Copiando uma string em outra\n"); printf("----------------------------\n"); printf("\n"); printf("Digite string1 :"); scanf("%s",&string1); printf("\n"); printf("string1 = %s\n",string1); printf("string2 = %s\n",strcpy(string2,string1)); return(0); } Na prática, todo conteúdo de string2 é substituído por string1. 6.3 Unindo duas strings Para unir duas strings use a função strcat( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strcat(destino, origem) Exemplo: /* Unindo duas strings usando a
#include <stdio.h> #include <string.h>
int main() { char string1[100], string2[10];
printf("\n"); printf("Unindo duas strings\n");
return(0); } 6.5 Função que determina se duas strings são iguais int streql(char str1, char str2) { while((str1 == str2) && (str1)) { str1++; str2++; } return((str1 == NULL) && (str2 == NULL)); } 6.6 Convertendo uma string para maiúsculas Para converter uma string para maiúsculas use a função strupr( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strupr(string) Exemplo: / Convertendo uma string em maiúsculas
#include <stdio.h> #include <string.h>
int main() { char string[20];
printf("\n"); printf("Convertendo uma string para maiúsculas\n"); printf("------------------------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("string digitada : %s\n",string);
printf("\n"); printf("Convertendo para maiúsculas : %s\n",strupr(string)); return(0); } 6.7 Convertendo uma string para minúsculas Para converter uma string para minúsculas use a função strlwr( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strlwr(string) Exemplo: /* Convertendo uma string em minúsculas
#include <stdio.h> #include <string.h>
int main() { char string[20];
printf("\n"); printf("Convertendo uma string para minúsculas\n"); printf("------------------------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("string digitada : %s\n",string); printf("\n"); printf("Convertendo para minúsculas : %s\n",strlwr(string)); return(0); } 6.8 Localizando a primeira ocorrência de um caractere numa string Para isso use a função strchr( ). Ela faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strchr(string, caracter)
Exemplo: /* Localizando o último caracter numa string
#include <stdio.h> #include <string.h>
int main() { char string[30] = "Teste da função strrchr()."; char *ptr;
printf("\n%s\n",string);
ptr = strrchr(string, 's');
if (*ptr) { printf("\n"); printf("A última ocorrência de s é na posição %d\n",ptr - string); } else printf("Caractere não encontrado.\n");
return(0); } 6.10 Função que conta o número de ocorrências de um caractere numa string int contachar(char string[], char letra) { int contador, tamanho, ocorrencia = 0; tamanho = strlen(string); for(contador=1;contador <= tamanho;contador++) if(string[contador] == letra) ocorrencia++;
return(ocorrencia); } Abaixo segue um exemplo com a utilização da função contachar(). O exemplo considera que ela faz parte do arquivo de cabeçalho <samfunc.h>: #include <stdio.h> #include <string.h> #include <samfunc.h>
int main() { char *string[20]; char letra[2]; int nr;
printf("Testando a função contachar()\n"); printf("---------------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("Entre com a letra :"); scanf("%s",&letra); nr = contachar(string,letra[0]); printf("\n"); printf("Contando o número de ocorrências : %d\n",nr); return(0); } 6.11 Invertendo uma string utilizando a função strrev( ) Para inverter o conteúdo de uma string use a função strrev( ). Ela faz parte do arquivo de cabaçalho string.h. Sua sintaxe é: strrev(string) Exemplo: /* Invertendo uma string usando a
printf("------------------------------------\n"); printf("\n"); printf("Digite a string :"); scanf("%s",&string); printf("\n"); printf("Caractere :"); scanf("%s",&caracter); printf("\n"); printf("Substituindo ==> %s",strset(string,caracter[0])); return(0); } 6.13 Comparando duas strings Para comparar duas strings use a função strcmp( ). Ela faz parte do arquivo de cabeçalho string.h. 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. Exemplo: /* Comparando duas strings com a função strcmp() */
#include <stdio.h> #include <string.h>
int main() { char string1[20],string2[20]; int retorno;
printf("\n"); printf("Comparando duas strings\n"); printf("-----------------------\n"); printf("\n"); printf("Entre com a primeira string :"); scanf("%s",&string1);
printf("\n"); printf("Entre com a segunda string :"); scanf("%s",&string2); printf("\n");
retorno = strcmp(string1,string2);
if(retorno == 0) printf("As strings são iguais.\n"); else if(retorno < 0) printf("A string1 , maior.\n"); else printf("A string2 , maior.\n");
return(0); } OBSERVAÇÕES: 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) Existem ainda as funções stricmp( ) e strncmpi( ) que comparam duas strings sem considerar a caixa das letras (maiúsculas ou minúsculas). 6.14 Convertendo strings em números Para converter strings em números utilize as funções abaixo:
atof(string) float
atoi(string) int
atol(string) long int
strtod(string) double
int main() { char string[20]; char *copia;
printf("\n"); printf("Duplicando uma string\n"); printf("---------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); copia = strdup(string); printf("string ==> %s\n",string); printf("cópia ==> %s\n",copia); return(0); } 6.16 Localizando uma substring dentro da string Para localizar uma substring dentro da string use a função strstr( ). Ela pertence ao arquivo de cabeçalho string.h e sua sintaxe é: strstr(string,substring) Se a substring existir dentro da string, a função retornará um ponteiro para a primeira letra da substring, senão retornará NULL. Exemplo: /* Localizando uma substring dentro de uma string */
#include <stdio.h> #include <string.h>
int main() { char string[20],substring[20]; char *extrai; int tamanho;
printf("\n"); printf("Localizando uma substring dentro da string\n"); printf("------------------------------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("Entre com a substring :"); scanf("%s",&substring); tamanho = strlen(substring); extrai = strstr(string,substring); printf("\n");
if(extrai) { printf("A string contém a substring.\n"); printf("A substring começa na posição %d.\n",extrai-string); printf("A substring tem %d caracteres.\n",tamanho); } else printf("A string não contém a substring.\n");
return(0); } 6.17 Função que remove uma substring de dentro de uma string #include <stdio.h> #include <string.h>
char *sstr(char *string, char *substring) { char *extrai; int tamanho,contador;
tamanho = strlen(substring);
char *extrai; int tamanho1,tamanho2,contador;
tamanho1 = strlen(substring); tamanho2 = strlen(nova);
if((tamanho1 > tamanho2) || (tamanho2 > tamanho1)) return(" "); else { extrai = strstr(string,substring);
if(extrai) { for(contador = 0;contador < tamanho1; contador++) string[(extrai - string) + contador] = nova[contador]; return(string); } else return(" "); } }
int main() { char string[20],substring[20],nova[20];
printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("Entre com a substring :"); scanf("%s",&substring); printf("\n");
printf("Entre com a nova substring :"); scanf("%s",&nova); printf("\n"); printf("nova string ==> %s\n",subs_str(string,substring,nova));
return(0); } 6.19 Invertendo uma string sem o uso da função strrev( ) /* Invertendo uma string */
#include <stdio.h> #include <string.h>
int main() { char string[100],invertida[100]; char *caracter; int tamanho,contador;
printf("\n"); printf("Invertendo uma string\n"); printf("---------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string);
tamanho = strlen(string); contador = tamanho;
caracter = &string;
while(*caracter) { invertida[(contador - 1)] = *caracter;
7.2 Verificando se o caracter é um valor ASCII Um valor ASCII é um valor entre 0 e 127. Para verificar se um caractere é um valor ASCII utilize a macro isascii( ) que faz parte do arquivo de cabeçalho ctype.h. Sua sintaxe é:
isascii(caracter) Exemplo : /* Verificando se um caracter contém um valor ASCII
#include <stdio.h> #include <ctype.h>
int main() { char caracter;
printf("\n"); printf("Digite um caracter :"); caracter = getchar(); printf("\n"); if (isascii(caracter)) printf("O caracter contém o valor ASCII %d.\n",caracter); else printf("O caracter não contém um valor ASCII.\n");
printf("\n"); return(0); } 7.3 Verificando se o caracter é um caracter de controle Um caracter de controle é composto pelo pressionamento da tecla control (CTRL) e uma letra ( ^A , ^B, ^C, ...... ^Z ou ^a, ^b, ^c ...... ^z). Para verificar se um caractere é de controle use a macro iscntrl( ). Ela faz parte do arquivo de cabeçalho ctype.h e sua sintaxe é:
iscntrl(caracter) Exemplo: /* Verificando se um caracter é de controle
#include <stdio.h> #include <ctype.h>
int main() { char caracter;
printf("\n"); printf("Digite um caracter :"); caracter = getchar(); printf("\n"); if (iscntrl(caracter)) { printf("O caracter digitado é um caracter de controle\n"); printf("e equivale ao código ASCII %d.\n",caracter); } else printf("O caracter digitado não é um caracter de controle.\n");
printf("\n"); return(0); } 7.4 Verificando se o caracter é um dígito Para verificar se o caracter é um dígito use a macro isdigit( ). Ela pertence ao arquivo de cabeçalho ctype.h e sua sintaxe é:
isdigit(caracter) Exemplo : /* Verificando se um caracter é um dígito