Centro de Ciências Exatas e TecnológicasCET150 - Processamento de Dados I
Prof. Marcos Bião
Aula – 11 Strings
Definição•A string é uma cadeia de caractere, ou seja, sequencia de letras e símbolos
•Em C, uma cadeia de carácter é representada por um vetor de tipo char e é terminada por um '/0'.
Declaração•A declaração de uma string é como já vimos ate então:
•char nome[20];•char endereco[300],rua[70];
Leitura•Para ler uma string podemos utilizar o scanf:– scanf(“%s”,&nome);
•Porem podemos ter alguns problemas com relação ao buffer do teclado.•Uma solução é fazer o seguinte:– scanf(“\n%s”,&nome);
•Um outro problema que temos com o scanf é que ele guarda o nome ate encontrar um <ESPAÇO>,<TAB> OU <ENTER>.
Leitura•Uma outra solução para leitura de strings é utilizar a função gets.
•Ela pode ser utilizada da seguite forma:– gets(nome);
•Com ela não temos o problema do buffer nem do “espaço”
Escrita•A escrita pode ser feita pelo printf:– printf(“%s”,nome);
•Uma outra função que pode ser utilizada é o puts– puts(“Meu nome é %s”,nome)– A função puts ja pula uma linha automaticamente
Funções de manipulação•Vejamos agora algumas funções para manipulação de strings:
– strlen(char *s)– Função que retorna o tamanho de caracteres
int main()
{
char nome[6]="marcos";
printf("%d",strlen(nome));
return 0;
}
Funções de manipulação– strcpy(char *dest,char *orig)– Função que copia o valor de uma variavel string para outra.
int main()
{
char nome2[6],nome[6]="marcos";
strcpy(nome2,nome);
printf("%s",nome2);
return 0;
}
Funções de manipulação– strncpy(char *dest,char *orig,int x)– Função que copia os X primeiros caracteres de uma variavel string
para outra.
int main()
{
char nome2[6],nome[6]="marcos";
strcpy(nome2,nome,3);
printf("%s",nome2);
return 0;
}
Funções de manipulação– strcat(char *dest, char *orig)– Função que concatena 2 strings;
int main(){
char nome[6]="Marcos",sobrenome[6]="Biao";
char nomeCompleto[20];
strcat(nomeCompleto,nome);
strcat(nomeCompleto," ");
strcat(nomeCompleto,sobrenome);
printf("%s",nomeCompleto);
return 0;
}
Funções de manipulação– strncat(char *dest,char *orig,int x)– Função que concatena 2 strings;
int main(){
char nome[6]="Marcos",sobrenome[6]="Biao";
char nomeCompleto[20];
strcat(nomeCompleto,nome);
strcat(nomeCompleto," ");
strcat(nomeCompleto,sobrenome);
printf("%s",nomeCompleto);
return 0;
}
Funções de manipulação– strcmp(char *lhs, char *rhs)– Função que retorna 0 se as strings forem iguais;
int main(){
char nome[10]="Marcos",sobrenome[10]="Marcosss";
if(strncmp(nome,sobrenome)==0){
printf("nomes iguais");
}
return 0;
}
Funções de manipulação– strncmp(char *lhs, char *rhs, int x)– Função que retorna 0 se os X primeiros caracteres forem iguais;
int main(){
char nome[10]="Marcos",sobrenome[10]="Marcosss";
if(strncmp(nome,sobrenome,6)==0){
printf("nomes iguais");
}
return 0;
}
Funções de manipulação– memset(char *nome, char letra, int x)– Função que coloca o caracter “letra” nas X primeiras posições de
nome;
int main(){
char nome[10]="Marcos";
memset(nome,'a',2);
printf("%s",nome);
}
Funções de manipulação– strupr(char *nome)– Função que converte todos os caracteres de “nome” me maiusculo;
int main(){
char nome[10]="Marcos";
printf("%s",strupr(nome);
}
Funções de manipulação– strlwr(char *nome)– Função que converte todos os caracteres de “nome” me minusculo;
int main(){
char nome[10]="Marcos";
printf("%s",strlwr(nome);
}
Funções de manipulação– int contachar(char nome, char letra)– Função que conta quantas vezes “letra” aparece em “nome”;
int contachar(char string[], char letra){
int cont, tamanho, ocorrencia = 0;
tamanho = strlen(string);
for(cont=1;cont <= tamanho;cont++)
if(string[cont] == letra)
ocorrencia++;
return(ocorrencia);
}
Funções de manipulação– int strstr(char nome, char subnome)– Função que retorna a primeira posição do “subnome” em “nome”
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");
Funções de manipulação– strrev(char *nome)– Função que inverte os caracteres de “nome”;
int main(){
char nome[10]="Marcos";
printf("%s",strrev(nome);
}
Funções de manipulação– NOME PALIDROMO– Função que inverte os caracteres de “nome”;
int main(){
char nome[10]="Marcos";
printf("%s",strrev(nome);
}
Funções de manipulação– strrev(char *nome)– Função que inverte os caracteres de “nome”;
int main(){
char nome[10]="Marcos";
printf("%s",strrev(nome);
}
Top Related