Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Tutorial Strings, Trabalhos de Informática

Diversas funções para se trabalhar com strings.

Tipologia: Trabalhos

2010

Compartilhado em 09/08/2010

israel-barbosa-2
israel-barbosa-2 🇧🇷

2 documentos

1 / 34

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
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
* função strcpy() */
#include <stdio.h>
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22

Pré-visualização parcial do texto

Baixe Tutorial Strings e outras Trabalhos em PDF para Informática, somente na Docsity!

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

  • função strcpy() */

#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

  • função strcat() */

#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

  • usando a função strupr() */

#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

  • usando a função strlwr() */

#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

  • usando a função strrchr()*/

#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

  • função strrev() */

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:

FUNÇÃO CONVERTE STRINGSEM

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

  • usando a macro isascii() */

#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

  • usando a macro iscntrl() */

#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

  • usando a macro isdigit() */