Como passar char como argumento

3 respostas
M

Olá, tenho que fazer uma função extra para repartir strings e ver determinados locais da string mas não estou conseguindo. No código abaixo.

while(scanf(" %s",votes[count]))
		{
			if(auxConverter(votes[count]) == 0)
				break;
			count++;
		}


int auxConverter(char *c)
{
	char vote;
	vote = *c;
	printf("%i\n",vote);
	return 0;
}

Sei qeu a parte ali retorna 0 está errado mas era só um teste, o que acontece é que ele ao invez de me devolver a string(outro teste), ele me devolve o numero 49,53.
Eu nunca havia programado em C, somente em java,php,js, nessas outras linguagens isso seria mamão com açucar ;S

3 Respostas

ViniGodoy

Use %s no printf, não %i. Com %i você está mandando imprimir seu char* como um inteiro, então ele escreve o valor do endereço de memória para qual o ponteiro aponta.

J

Pois é linguagem de baixo nível é diferente, ainda mais quando precisa lidar com endereço de memória diretamente.

#include <stdio.h>


char* auxConverter(char* string){
    return string;
}



int main(void)
{
    char string[100] = "teste..12345\n";//ou pode usar um endereço de memória deretamente usando o operador * (char *string="teste...12345\n" Dessa forma não precisa usar o operador de endereço "&" na função auxConverter)
    printf(auxConverter(&string));
    return 0;
}
J

A função auxConverter precisa voltar um vetor de char também. Ela volta um inteiro.

char* auxConverter(char*);

Criado 25 de março de 2013
Ultima resposta 25 de mar. de 2013
Respostas 3
Participantes 3