Ir para conteúdo
Fórum Script Brasil
  • 0

[AJUDA] Controle de fluxo


vandal

Pergunta

Olá pessoal, bom dia!

Estou aprendendo C por conta (auto-didata), e deparei com uma questão que não estou conseguindo resolver!!!

A quem puder ajudar, serei grato.

Vamos a questão:

1- 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 contagem do caracter, eu conseguir fazer, porem não tenho ideia de como substituir 'a' por 'b'.

O que consigo fazer, fica mais ou menos assim:

#include <stdio.h>

#include <stdlib.h>

int main ()

{

char string[100]; /* String, ate' 99 caracteres */

int i, cont;

printf("\n\nDigite uma frase: ");

gets(string); /* Le a string */

printf("\n\nFrase digitada:\n%s", string);

cont = 0;

for (i=0; string != ''; i=i+1)

{

if ( string == 'c' ) /* Se for a letra 'c' */

cont = cont +1; /* Incrementa o contador de caracteres */

}

printf("\nNumero de caracteres c = %d", cont);

system("pause");

return(0);

}

Agora só falta fazer a troca!!!!

Obrigado.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Cara, também tem esse aqui:

#include <stdio.h>

int main()

{

char str[10] = "Joao";

printf("\n\nString: %s", str);

printf("\nSegunda letra: %c", str[1]);

str[1] = 'U';

printf("\nAgora a segunda letra é: %c", str[1]);

printf("\n\nString resultante: %s", str);

return(0);

}

Mais como pode ver, ele altera apenas o segundo caracter "str[1]='U';"

Link para o comentário
Compartilhar em outros sites

  • 0

SK15,

Eu conseguir graças a sua ajuda...

Mais ainda tem um bugzinho, por enquanto num conseguir desvendar.

Mais ficou assim:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main()

{

char string[100];

int i,cont;

char buscachar = 'a';

char mudachar = 'B';

char *valueptr;

printf("Digite uma frase de ate 99 digitos:\n\n");

gets(string);

cont=0;

for(i=0;string !='\o'; i=i+1)

{

if(string =='a')

cont=cont+1;

}

valueptr = strchr(string, buscachar);

if(valueptr != '')

*valueptr = mudachar;

// Laço até o final da string

while (valueptr !='')

{

valueptr = strchr(valueptr + 1, buscachar);

if(valueptr != '')

*valueptr = mudachar;

}

printf (" A nova frase é: %s\n\n", string);

printf("\n\nNumero de caracter A = %d\n\n",cont);

system("pause");

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Vandal.

Sua primeira tentativa estava perto da solução.

No mesmo if onde você identifica o caracter a ser contado já pode proceder com a troca desejada.

Vê ai no código o que eu to falando e se tiver duvida é só falar.

Abs

#include <stdio.h>
#include <stdlib.h>

int main ()
{
    char string[100]; /* String, ate' 99 caracteres */ 
    int i, cont; 

    printf("\n\nDigite uma frase: "); 
    gets(string); /* Le a string */ 
    printf("\n\nFrase digitada:\n%s", string);
   
   cont = 0; 
   for (i=0; string[i] != 0; i=i+1)
   { 
       if ( string[i] == 'c' ) /* Se for a letra 'c' */ 
           {
           cont = cont +1; /* Incrementa o contador de caracteres */ 
           string[i] = 'b';    // FAZ A TROCA DA LETRA 'c' PELA LETRA 'b' DIRETAMENTE NA POSIÇÃO DE MEMÓRIA ENCONTRADA
           }
   } 
   printf("\nNumero de caracteres c = %d", cont);
   printf("\nString modificada: %s\n", string);
   //system("pause");  PRA PARAR O PROCESSAMENTO USA getch() AO INVÉS DE system("pause");
   getch();
   return(0); 
}

Link para o comentário
Compartilhar em outros sites

  • 0

Ainda estou em fase de aprendizagem, acho que seria bom ter um programa que rode tanto em windows, quanto em linux, unix etc...

É mais habito também :).

Estou utilando o Dev C e baixei o code blocks, já o borland, não conseguir baixar porque porque meu win é 64bits aí da erro :(

Só uma observaçãozinha, comecei a estudar C, faz uma semaninha só... hehehehe

Abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...