Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jacquel

programando com ponteiros

Recommended Posts

Gostaria de saber porque o programa não tá imprimindo a nova palavra! <_<

 

[php]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* troca_letra (char* str, char original, char novo)
{
	char* novo_v;
	int i;
	//você não precisa fazer um loop para contar o tamanho, já existe a função strlen() para calcular isso (para isso, declare a biblioteca <string.h> no início do código)
	int tam=strlen(str);
	
	novo_v=(char*)malloc((char)sizeof(tam+1) );	//Erro aki, use (char) ao invés de (char *) dentro do malloc
	for(i=0;i<tam;i++)
	{
	   
		if(str[i]==original)
			novo_v[i]=novo;

		else
			novo_v[i]=str[i]; 

	}

	novo_v[i]='\0'; //Erro aki, ' ao invés de " e \ ao invés de /
   
	return novo_v;
	 
}

main(){
	char pal[30]; //Erro aki, tirar o *
	char orig,nova;
	  
	printf("Digite a palavra:\n");
	gets(pal); //Erro aki, use fgets ao invés de scanf para obter strings
	printf("DIGA A LETRA ORIGINAL:\n"); 
	fflush(stdin);//Erro aki, fflhush não deve ser usado em stdin
	scanf("%c",&orig); //Erro aki, usar %*c
	printf(" E A NOVA PARA REALIZAR A TROCA:\n");
	fflush(stdin);
	//Erro aki, fflhush não deve ser usado em stdin
	scanf("%c",&nova);//Erro aki, usar %*c
	  
	troca_letra(pal,orig,nova);
	   
	printf("NOVA PALAVRA:%s\n",troca_letra); //Erro aki, %s ao invés de %c
	   
}
[/php]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.