Jump to content
AprendendoC

mostrar quantos caracteres tem numa string

Recommended Posts

AprendendoC

Elaborar um programa que receba uma string e que conte quantas vezes um

caractere fornecido pelo usuário aparece nessa string. Mostrar o resultado.

pessoal preciso fazer o programa contar qntos caracteres tem na string. exemplo: usuario digita um palavra qualquer e um caracter... e o programa procura quantas vezes o caracter q o usuario digitou aparece na string.

nao to conseguindo fazer.. o programa so conta qntas letras tem na string.

Share this post


Link to post
Share on other sites
bubulindo

É simples...

Primeiro colocas aqui o código que já tens... depois nós damos uma melhor ideia do que está mal.

Até lá só te posso dizer que tens de comparar o caracter inserido pelo utilizador com todos os caracteres da string e implementar uma variável para contar o número de vezes que isso acontece.

simplesa...


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
Localhost

Ele até mostrou o que tem feito (por palavras...) e hoje até acordei bem disposto por isso vou dar uma ideia de como fazer isto.

Ora bem, começas por ler a string e o caracter que o utilizador quer verificar (coisa que deves saber fazer, suponho) e depois fazes um ciclo que vai desde o início da string até ao final da mesma (uma string é terminada pelo caracter nulo - '\0'). A cada passo no ciclo verificas se o caracter que se encontra na posição actual (posição que está a ser percorrida pela variável que utilizas no ciclo) é igual ao caracter que o utilizador inseriu. Se for incrementas uma variável, se não for não fazes nada. No final do ciclo imprimes o valor da variável.


here since 2009

Share this post


Link to post
Share on other sites
bubulindo

Ele até mostrou o que tem feito (por palavras...) e hoje até acordei bem disposto por isso vou dar uma ideia de como fazer isto.

Ora bem, começas por ler a string e o caracter que o utilizador quer verificar (coisa que deves saber fazer, suponho) e depois fazes um ciclo que vai desde o início da string até ao final da mesma (uma string é terminada pelo caracter nulo - '\0'). A cada passo no ciclo verificas se o caracter que se encontra na posição actual (posição que está a ser percorrida pela variável que utilizas no ciclo) é igual ao caracter que o utilizador inseriu. Se for incrementas uma variável, se não for não fazes nada. No final do ciclo imprimes o valor da variável.

Sim... e eu respondi por palavras. Tu dedicaste-te a elaborar um pouco mais. O que é sempre bom, mas na altura estava sem tempo. :)


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
AprendendoC

esse e o codigo que tenho ate agora

int _tmain(int argc, _TCHAR* argv[])

{

char palavra[255], caracter [2];

int i, j;

    printf ("Digite uma Palavra qualquer: ");

    gets(palavra);

    printf ("Digite uma Caracter qualquer: ");

    gets(caracter);

  for( i = 0; palavra != '\0'; i++)

{

printf("%d", palavra);

}

return 0;

Share this post


Link to post
Share on other sites
bubulindo

Facilita muito mais se:

- Definires um char "char caracter".

char caracter = 0;

- Utilizares getchar() em vez de gets()

printf ("Digite uma Caracter qualquer: ");
    caracter = getchar();//gets(caracter);

e depois comparares cada valor da string com a variável caracter


//      for( i = 0; palavra != '\0'; i++)  //isto podia estar melhor
//      {
//         printf("%d", palavra);
//      }
i = 0; 
contador = 0; 
while (palavra[i] != '\0')  
{
if (palavra[i] == caracter)   contador++;//se o caracter for igual ao caracter nesta posicão da string... incrementar contador. 
if (i >=250)   break; //tens de garantir que se a string não tiver um caracter nulo, o programa não vai ficar a andar indefinidamente
i++; //caracter seguinte
}
printf ("numero de caracteres igual a %c e: %d\n", caracter, contador);//imprimir resultado. 

Algo assim deve fazer o que pretendes.


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.