| <<< Voltar | Avançar >>> |
|
|
Se esta página lhe ajudar, considere fazer uma doação |
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);
} |
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");
printf("-------------------\n");
printf("\n");
printf("Digite string1 :");
scanf("%s",&string1);
printf("\n");
printf("Digite string2 :");
scanf("%s",&string2);
printf("\n");
printf("Unindo string1 a string2 : %s\n\n",strcat(string2,string1));
return(0);
} |
6.4 Anexando caracteres de uma string em outra
Para anexar caracteres de uma string em outra use a função strncat( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é :strncat(destino, origem, nr_caracteres)
Exemplo:
/* Anexando caracteres de uma string
* em outra usando a função strncat()*/
#include <stdio.h>
#include <string.h>
int main()
{
char string1[20],string2[6]="aeiou";
printf("\n");
printf("Anexando caracteres de uma string em outra\n");
printf("------------------------------------------\n");
printf("Entre com string1 :");
scanf("%s",&string1);
printf("\n");
printf("string2 = %s\n\n",string2);
printf("string1 + 3 caracteres de string 2 = %s\n",strncat(string1,string2,3));
printf("\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)
Este função retorna um ponteiro para a primeira ocorrência de "caracter". Caso "caracter" não seja encontrado, ela retornará um ponteiro para o caractere NULL que marca o final da string.
Exemplo:
/* Localizando o primeiro caracter numa string
* usando a função strchr()*/
#include <stdio.h>
#include <string.h>
int main()
{
char string[30] = "Teste da função strchr().";
char *ptr;
printf("\n%s\n",string);
ptr = strchr(string, 's');
if (*ptr)
{
printf("\n");
printf("A primeira ocorrência de s é na posição %d\n",ptr - string);
}
else
printf("Caractere não encontrado.\n");
return(0);
} |
6.9 Localizando a última ocorrência de um caractere numa string
Para isso use a função strrchr( ). Ela faz parte do arquivo de cabeçalho string.h. Sua sintaxe é:strrchr(string, caracter)
Este função retorna um ponteiro para a última ocorrência de "caracter". Caso "caracter" não seja encontrado, ela retornará um ponteiro para o caractere NULL que marca o final da string.
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);
} |
#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() */
#include <stdio.h>
#include <string.h>
int main()
{
char string[20];
printf("\n");
printf("Invertendo uma string\n");
printf("---------------------\n");
printf("\n");
printf("Entre com a string :");
scanf("%s",&string);
printf("\n");
printf("Invertendo ==> %s",strrev(string));
return(0);
} |
6.12 Substituindo os caracteres da string por um único caracter
Para substituir todos os caracteres da string pelo mesmo caracter use a função strset( ). Ela faz parte do arquivo de cabeçalho string.h. Sua sintaxe é:strset(string,caracter)
Exemplo:
/* Substituindo todos os caracteres da string
* pelo mesmo caracter usando a função strset() */
#include <stdio.h>
#include <string.h>
int main()
{
char string[20];
char caracter[2];
printf("\n");
printf("Substituindo os caracteres da string\n");
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);
} |
-
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 STRINGS EM |
| atof(string) | float |
| atoi(string) | int |
| atol(string) | long int |
| strtod(string) | double |
| strtol(string) | long |
Estas funções fazem parte do arquivo de cabeçalho stdlib.h
Exemplo:
/* Convertendo strings em números */ |
#include <stdio.h>
#include <stdlib.h>
int main()
{
char string1[20],string2[20];
printf("\n");
printf("Convertendo strings em números\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");
printf("string1 + string2 = %f",atof(string1) + atof(string2));
return(0);
} |
6.15 Duplicando uma string
Para duplicar uma string use a função strdup( ). Ela está no arquivo de cabeçalho string.h. Sua sintaxe é:*strdup(string)
Exemplo:
/* Duplicando uma string */
#include <stdio.h>
#include <string.h>
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);
extrai = strstr(string,substring);
if(extrai)
{
for(contador = 0;contador < tamanho; contador++)
extrai[contador] = string[(extrai - string) + contador];
extrai[contador] = NULL;
return(extrai);
}
else
return(" ");
}
int main()
{
char string[20],substring[20];
printf("\n");
printf("Entre com a string :");
scanf("%s",&string);
printf("\n");
printf("Entre com a substring :");
scanf("%s",&substring);
printf("\n");
printf("substring ==> %s\n",sstr(string,substring));
return(0);
} |
6.18 Função que substitui uma subtring por outra
#include <stdio.h>
#include <string.h>
char *subs_str(char *string, char *substring, char *nova)
{
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;
*(caracter++);
contador--;
}
invertida[tamanho] = NULL;
printf("\n");
printf("Invertendo ==> %s\n\n",invertida);
return(0);
}
|
|
|
Se esta página lhe ajudou, considere fazer uma doação |
| <<< Voltar | Avançar >>> |