Buscar

Exemplos de Programas em C para Manipulação de Strings

Prévia do material em texto

1) Fazer um programa para contar o número de espaços em brancos de uma string. 
int main() 
{ 
 char str[100]; 
 int i,cont=0; 
 printf("Digite a string:"); 
 gets(str); 
 for(i=0; (i<strlen(str)) && (str[i]!= '\0'); i++) 
 { 
 if (str[i]==' ') 
 { 
 cont++; 
 } 
 } 
 printf("A string \"%s\" possui %d espacos em branco\n",str,cont); 
 return 0; 
} 
2) Refaça o programa anterior criando uma função que receberá como parâmetro a string e 
retornará o número de espaços em branco que a string contém. 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int contador (char str[]) 
{ 
 int i,cont=0; 
 for(i=0; (i<strlen(str)) && (str[i]!= '\0'); i++) 
 { 
 if (str[i]==' ') 
 { 
 cont++; 
 } 
 } 
 return cont; 
} 
int main() 
{ 
 char str[100]; 
 int n; 
 printf("Digite a string:"); 
 gets(str); 
 n=contador(str); 
 printf("A string \"%s\" possui %d espacos em branco\n",str,n); 
 return 0; 
} 
3) Fazer um programa para contar o número de vogais numa cadeia de caractere. 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int main() 
{ 
 char str[100]; 
 int i,cont=0; 
 printf("Didite a string:"); 
 gets(str); 
 for (i=0; i<strlen(str)&&(str[i]!='\0'); i++) 
 { 
 switch (str[i]) 
 { 
 case 'A':case 'a': 
 cont++; 
 break; 
 case 'E':case 'e': 
 cont++; 
 break; 
 case 'I':case 'i': 
 cont++; 
 break; 
 case 'O':case 'o': 
 cont++; 
 break; 
 case 'U':case 'u': 
 cont++; 
 break; 
 } 
 } 
 printf("\nO numero de vogais da string \"%s\" e %d",str,cont); 
 return 0; 
} 
4) Refaça o programa anterior criando uma função que receberá como parâmetro a string e 
retornará o número de vogais que a string contem. 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int vogais (char str[]) 
{ 
 int i,cont=0; 
 for (i=0; i<strlen(str)&&(str[i]!='\0'); i++) 
 { 
 switch (str[i]) 
 { 
 case 'A':case 'a': 
 cont++; 
 break; 
 case 'E':case 'e': 
 cont++; 
 break; 
 case 'I':case 'i': 
 cont++; 
 break; 
 case 'O':case 'o': 
 cont++; 
 break; 
 case 'U':case 'u': 
 cont++; 
 break; 
 } 
 } 
 return cont; 
} 
int main() 
{ 
 char str[100]; 
 int cont; 
 printf("Didite a string:"); 
 gets(str); 
 cont= vogais(str); 
 printf("\nO numero de vogais da string \"%s\" e %d",str,cont); 
 return 0; 
} 
5) Escrever um programa que leia uma string (com mais de uma palavra) e faça com que a 
primeira letra de cada palavra fique em maiúscula. Para isso, basta modificar cada letra 
através da expressão: chrNome[0] = chrNome[0] – 'a' + 'A'; 
Exemplo: Entrada: lab. de linguagem de programacao 
 Saída: Lab. De Linguagem De Programacao 
 
 
#include <stdio.h> 
#include <string.h> 
 
#define TAM 100 
 
int main () 
{ 
 char s[TAM]; 
 int i; 
 
 printf ("Digite a string: "); 
 gets(s); 
 
 s[0] = s[0] - 32; 
 
 for (i = 1; (s[i] != '\0') && (i < TAM); i++) 
 if (s[i] == ' ') 
 { 
 i++; 
 s[i] = s[i] - 32; 
 } 
 
 printf ("\nNova string [%s].\n", s); 
 
 return 0; 
} 
6) Escreva uma função que receba uma string, conte quantos caracteres desta string são 
iguais a 'a' e substitua os que forem iguais a 'a' por 'b'. A função deverá retornar o número 
de caracteres modificados. 
#include <stdio.h> 
#include <string.h> 
#define TAM 100 
 
int main () { 
 char s[TAM]; 
 int i, cont; 
 printf ("Digite a string: "); 
 gets(s); 
 for(i=0;i<strlen(s)&& s[i]!='\0';i++){ 
 if (s[i]=='a') 
 cont++; 
 if (s[i]=='a') 
 s[i]='b'; 
 } 
 puts(s); 
 
 
 
 return 0; 
} 
7) Crie uma função que receba uma frase e a exiba na tela de forma soletrada, ou seja, 
cada letra deve ser exibida na tela separada por hífen. 
#include <stdio.h> 
#include <string.h> 
#define TAM 100 
 
void soletrar(char s[]){ 
 int i; 
 
 for (i = 0; s[i] != '\0'; i++) { 
 printf("%c", s[i]); 
 if (s[i+1] != '\0'&& s[i+1]!=' ') 
 printf("-"); 
 } 
 printf("\n"); 
} 
 
int main () { 
 char s[TAM]; 
 
 printf ("Digite a string: "); 
 gets(s); 
 
 soletrar(s); 
 
 return 0; 
} 
8) Crie uma função que receba uma string de no máximo 50 caracteres e inverta a ordem 
da string digitada; 
Exemplo: Entrada: Teste 
 Saída: etseT 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#define TAM 50 
void inverter (char s[]) 
{ 
 int i, tam; 
 tam= strlen(s); 
 for (i = (tam-1); i>=0; i--) 
 putchar(s[i]); 
 printf("\n"); 
} 
int main () 
{ 
 char s[TAM]; 
 gets(s); 
 inverter (s); 
 return 0; 
} 
9) Fazer um programa para criar e imprimir uma string que será a concatenação de duas 
outras strings lidas. 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#define TAM 50 
int main() 
{ 
 char s1[TAM], s2[TAM]; 
 gets(s1); 
 gets(s2); 
 puts(strcat(s1,s2)); 
}

Continue navegando