Usuário com melhor resposta
Código c - Dúvida em Algoritmo

Pergunta
-
Bom dia, sou iniciante em linguagem c, e gostaria de ajuda com esse código.
Enunciado : Escreva um programa que irá ler uma linha de caracteres do teclado e imprima quantas vezes um caractere, também fornecido pelo teclado, aparece nesta linha. O programa também deve imprimir em que posições o caractere foi encontrado.
Eu só consegui até aqui, alguém pode me dar uma luz ?
Minha dificuldade é como eu faço para imprimir as posições no caso de mais de um caractere igual, como mostra acima.
Segue o código :
#include<stdio.h> #include<string.h> int main (void) { char frase[100], caractere; int i, tamanho = 0, total = 0, posicao; printf("\n Digite algo : "); gets (frase); printf("\n Informe o caracter que deseja verificar : "); scanf("%c", &caractere); total = strlen(frase); for(i = 0; i < total; i++) { if(frase[i] == caractere) { tamanho++; posicao = i; } } printf("\n Total do caractere : %d \n Posição [%d]: ", tamanho, posicao); return 0; }
Respostas
-
char frase[100], caractere[100]; int i, tamanho = 0, total = 0; int posicao[100], p = -1; printf("\n Digite algo : "); gets(frase); printf("\n Informe o caracter que deseja verificar : "); gets(caractere); total = strlen(frase); for (i = 0; i < total; i++) { if (frase[i] == caractere[0]) { tamanho++; posicao[++p] = (i + 1); } } printf("\n Total do caractere : %d ", tamanho); //Assim /*for (i = 0; i <= p; i++) { printf("\n Posicao: [%d]", posicao[i]); }*/ //Ou printf("\n Posicao: "); for (i = 0; i <= p; i++) { if (i > 0){ printf(","); } printf("["); printf("%d", posicao[i]); printf("]"); }
Eu mudei algumas variáveis e coloque duas formas de visualização!
Escolha a melhor que lhe agrade ... (é só tirar o comentário de linha)
- Marcado como Resposta renatafx domingo, 15 de dezembro de 2013 02:53
Todas as Respostas
-
char frase[100], caractere[100]; int i, tamanho = 0, total = 0; int posicao[100], p = -1; printf("\n Digite algo : "); gets(frase); printf("\n Informe o caracter que deseja verificar : "); gets(caractere); total = strlen(frase); for (i = 0; i < total; i++) { if (frase[i] == caractere[0]) { tamanho++; posicao[++p] = (i + 1); } } printf("\n Total do caractere : %d ", tamanho); //Assim /*for (i = 0; i <= p; i++) { printf("\n Posicao: [%d]", posicao[i]); }*/ //Ou printf("\n Posicao: "); for (i = 0; i <= p; i++) { if (i > 0){ printf(","); } printf("["); printf("%d", posicao[i]); printf("]"); }
Eu mudei algumas variáveis e coloque duas formas de visualização!
Escolha a melhor que lhe agrade ... (é só tirar o comentário de linha)
- Marcado como Resposta renatafx domingo, 15 de dezembro de 2013 02:53
-