gjr_rj
(usa Debian)
Enviado em 17/02/2008 - 03:42h
Neste caso entenda string = vetor de caracter
O único erro é que você declarou o variável como array de caracter e "string" não se compara assim.
Para comparar "string" você deve usar a função strcomp da string.h
r = strcomp (c1, c2);
if (r)
Mais não acho a melhor forma. Da forma que está o usuário tem que digitar N<ENTER>.
dessa forma a variável resp fica com o valor
resp[0]= 'N' e resp [1] = '\n'
Então, melhor que usar strcomp é comparar a posição 0 do vetor. Como qualquer posição de um vetor de caracter é um caracter, e caracter pode ser comparado com o sinal =, basta fazer o if dessa forma:
if (resp[0] == 'N')
Uma forma melhor ainda é usar getchar e não scanf. getchar lê caracter então o usuário precisará digitar apenas N sem ter que teclar <ENTER>. Como getchar retorna caracter a variável também deverá ser caracter. Então ficará.
char resp;
...
resp=getchar();
if (resp=='N')
Obs.: A variável não precisa ser limpa para ser reutilizada. Pelo menos não no caso mostrado por você.
Obs.2: Seria bom não comparar apenas o 'N' mas também o 'n'. Ex.:
if ((resp == 'N') || (resp == 'n'))
Espero ter ajudado.