dúvida idiota :{

Started by dshadw, 21 de March , 2007, 12:21:11 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dshadw

"Escreva um programa que leia uma string, conte quantos caracteres desta string são iguais a 'a' e substitua os que forem iguais a 'a' por 'b'. O programa deve imprimir o número de caracteres modificados e a string modificada."

a apostila está pedindo isso, mas eu não estou conseguindo escrever a string com os caracters modificados

int main()
{
    char string[400];
    int count = 0;
    int i;
    printf("Digite uma frase:\n->");
    gets(string);
    for(i=0;string[i];i++)
    {
         if (string[i]=='a')
         count++;
    }
    if (count==1)
    printf("\nA frase possui %d letra a\n",count);
    else
    printf("\nA frase possui %d letras a\n",count);
    system("pause);
}

O programa le a string e conta quantas letras "a" ela tem, agora se quiser substituir o "a" por "x", como eu faço? tava tentando assim, mas não está dando certo :{


 for(i=0;string[i];i++)
    {
         if (string[i]=='a')
         string[i]=='x';
         printf("%s",string);
    }

o que está de errado?

Anonymous

Amigo nenhuma duvida e idiota, pois so de você ter tentando já e um grande sucesso  8)

Anonymous

Quote from: "dshadw""Escreva um programa que leia uma string, conte quantos caracteres desta string são iguais a 'a' e substitua os que forem iguais a 'a' por 'b'. O programa deve imprimir o número de caracteres modificados e a string modificada."

a apostila está pedindo isso, mas eu não estou conseguindo escrever a string com os caracters modificados

int main()
{
    char string[400];
    int count = 0;
    int i;
    printf("Digite uma frase:\n->");
    gets(string);
    for(i=0;string[i];i++)
    {
         if (string[i]=='a')
         count++;
    }
    if (count==1)
    printf("\nA frase possui %d letra a\n",count);
    else
    printf("\nA frase possui %d letras a\n",count);
    system("pause);
}

O programa le a string e conta quantas letras "a" ela tem, agora se quiser substituir o "a" por "x", como eu faço? tava tentando assim, mas não está dando certo :{


 for(i=0;string[i];i++)
    {
         if (string[i]=='a')
         string[i]=='x';
         printf("%s",string);
    }

o que está de errado?

voce temq  usar a atribuição '=', voce esta usando a comparacao  '==' :P

int cont=0;
 for(i=0;i<string[i];i++)
    {
         if (string[i]=='a'){
               string[i]=='x';
               cont++;
         }
    }
   printf("%s",string);


Anonymous

so corrigindo:

Quoteint cont=0;
 for(i=0;i;i++)
    {
         if (string=='a'){
               string='x';
               cont++;
         }
    }
   printf("%s",string);

shake

dudeabot ficaria melhor assim!

void main()
{
char string[400];
int cont = 0;
int i;
printf("Digite uma frase:\n->");
gets(string);
for(i=0;string[i];i++)
{
if (string[i]=='a')
cont++;
}
if (cont==1)
printf("\nA frase possui %d letra a\n",cont);
else
printf("\nA frase possui %d letras a\n",cont);

for(i=0;i<string[i];i++)
{
if (string[i]=='a')
{
string[i]='x';
cont++;
}
}
printf("\nSubstituindo as letras a por x");
printf("\n%s",string);
}

dshadw

agradeço a todos :}


@dudeabot

era isso mesmo, depois de um tempo eu lembrei disso ¬¬

ai eu tinha colocado

    for(i=0;string[i];i++)
    {
         if (string[i]=='a') string[i]='x';
        printf("\nString modificada:\n%s\n\n\n",string);
     
    }

Ai ele mostrava a palavra ao mesmo numero de caracters, tipo, "Fernando" ele mostrava
FernandoFernandoFernandoFernandoFernandoFernxndoFernxndoFernxndo

depois eu tirei o printf do for, ai deu certo :}

for(i=0;string[i];i++)
    {
         if (string[i]=='a') string[i]='x';
         
    }
    printf("\nString modificada:\n%s\n\n\n",string);
    system("pause");


era isso mesmo :}

agradeço a todos, eu vou continuar estudando c++ e assim que conseguir fazer algum programa util eu posto aqui no fórum ^^

t+