Ir ao conteúdo

Posts recomendados

Postado

ESTOU ME PERDENDO NA PARTE QUANDO COLOCO , PARA O PROGRMA COLOCAR NO INDICE 5 DA STRING E DEPOIS COLOCAR NO INDICE 2 ELE SE PERDE E IMPRIME ERRADO

 

 

#include <stdio.h>
#include <string.h>

main(){
	char nome[10];
	int tam,x[2]={0},i=0,j=0,qt;
	char a[10],op;
	int temp;
		
		puts("entre com um nome");   fflush(stdin);    gets(nome);
		tam=strlen(nome);
		for(i=0;i<2;i++){
		puts("\n entre com as posiçao que deseja alterar: ");fflush(stdin); scanf("%i",&x[i]);
		printf(" \n qual caracetere deseja colocar:");  fflush(stdin);   scanf("%s",&a[i]);   
		}
			for (i=0;i<2; i++){
			 for(j=i+1;j<2;j++){
			 if (x[i]>x[j])
				{
   		     	if(i==x[i])
				{  
  		     	nome[i]=a[i]; 
  		  	 	}
  		 	}
					
		    	}
		    		
				for(j=0;j<tam;j++){ //assim que entra aqui ele verifica 
   		     	if(j==x[j])
				{  //verifica o indice sao  iguais | exemplo i=0 eo vetor x tem os indices 0 e 1 
  		     	nome[j]=a[j]; // nome esta com indice 0 recebera o valor contido no i de 'a'
  		  	 	}
			 }
		    }
		
			
		    printf("\n %s",nome);
		}

 

Postado

Para fazer esse programa você pode percorrer a string e dentro do laço fazer um if comparando com o caractere que quer substituir. Dentro do if você coloca o caractere na posição atual. É como tentou fazer, mas é mais simples.

  • Obrigado 1
Postado

Veja se isso resolve:

#include <stdio.h>
#include <string.h>

int main()
{
	char nome[10];
	int tam,x[2]={0},i=0,j=0,qt;
	char a[10],op;
	int temp;
		
		puts("entre com um nome");   
		fflush(stdin);    
		gets(nome);
		tam=strlen(nome);
		for(i=0;i<2;i++)
		{
		    puts("\n entre com as posiçao que deseja alterar: ");
		    fflush(stdin); 
		    scanf("%i",&x[i]);
		    printf(" \n qual caracetere deseja colocar:");  
		    fflush(stdin);   
		    scanf("%s",&a[i]);   
		}
		for (i=0;i<2; i++)
		{
			 if (x[i] < tam) nome[x[i]] = a[i];
  		}
					
		printf("\n %s",nome);
		return 0;
}

 

  • Obrigado 1
Postado
27 minutos atrás, Flávio Pedroza disse:

Veja se isso resolve:


#include <stdio.h>
#include <string.h>

int main()
{
	char nome[10];
	int tam,x[2]={0},i=0,j=0,qt;
	char a[10],op;
	int temp;
		
		puts("entre com um nome");   
		fflush(stdin);    
		gets(nome);
		tam=strlen(nome);
		for(i=0;i<2;i++)
		{
		    puts("\n entre com as posiçao que deseja alterar: ");
		    fflush(stdin); 
		    scanf("%i",&x[i]);
		    printf(" \n qual caracetere deseja colocar:");  
		    fflush(stdin);   
		    scanf("%s",&a[i]);   
		}
		for (i=0;i<2; i++)
		{
			 if (x[i] < tam) nome[x[i]] = a[i];
  		}
					
		printf("\n %s",nome);
		return 0;
}

 

 nao entendi muito bem a parte do seu if ,mais funciona 

Postado

Nesse caso, acredito que nem precisaria de um FOR. seria apenas colocar:

char novaentrada, string[20];

printf("\nEntre com a posicao que deseja alterar: ");
scanf("%d", &posicao); //numero inteiro
fflush(stdin);

printf("Entre com o novo caracter para esta posicao: ");
scanf("%c", &novaentrada);
fflush(stdin);

string[posicao]=novaentrada;

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...