Gente, eu to passando muita dificuldade pra entender strings em C, preciso fazer um código q eu dou entrada em 16 valores (q são tanto números, quanto letras), cada valor lido vai ter um resultado diferente, porém quando o próximo valor for zero ele tem q finalizar a execução e apenas executar os resultados respectivos dos valores já lidos. Na lógica que eu montei eu criei uma função pra tentar fazer isso sem ter q colocar uma sequencia de mil e um "if" e "else" porque são mais ou menos 20 valores diferentes que podem ser combinados com vários outros valores e isso é código dms pra digitar, por isso tentei fazer usando só uma função em q eu chamasse o código, passasse os parametros e via se daria certo, porém o código n funcionou, refiz a lógica já umas 6 vezes, em nenhum momento deu certo e a única vez q de forma ilusória pareceu dar mais certo foi essa:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
char* leitor(char vl1[], char vl2[], char c1[], char resultado[])
{
if(strcmp(vl1, c1)) //comparação entre duas strings, pra ver se o valor 1 recebido comparado ao valor q é respectivo ao resultado é esse, se não fosse ele simplesmente daria retorno nulo
{
if(strcmp(vl2, "0")) //comparação entre o próximo valor e o valor 0, se for igual ele executa a ação do valor 1, se
{
return resultado;
}
else
{
return 0;
}
}
else
{
return 0;
}
}
int main() {
setlocale(LC_ALL, "Portuguese");
int c=0;
char v[16][200];
printf("Digite os 16 valores: \n");
while(c<16)
{
c = ++c;
printf("Bloco %i: ", c);
gets(v[c]);
}
printf("Ações: %s", leitor(v[1], v[2], "1", "feliz"));
return 0;
}
O código ta dando sempre como resultado nulo, e se por algum motivo eu troco o valor do parametro c1[] pra "10" e o zero sendo comparado com o vl2 pra "00" o resultado sempre é "feliz" independente da lógica ser certa ou n, me socorram, acredito q o problema seja com as strings, a forma q declarei elas ou qualquer coisa assim, agradeço desde já s2
Pergunta
Roza
Gente, eu to passando muita dificuldade pra entender strings em C, preciso fazer um código q eu dou entrada em 16 valores (q são tanto números, quanto letras), cada valor lido vai ter um resultado diferente, porém quando o próximo valor for zero ele tem q finalizar a execução e apenas executar os resultados respectivos dos valores já lidos. Na lógica que eu montei eu criei uma função pra tentar fazer isso sem ter q colocar uma sequencia de mil e um "if" e "else" porque são mais ou menos 20 valores diferentes que podem ser combinados com vários outros valores e isso é código dms pra digitar, por isso tentei fazer usando só uma função em q eu chamasse o código, passasse os parametros e via se daria certo, porém o código n funcionou, refiz a lógica já umas 6 vezes, em nenhum momento deu certo e a única vez q de forma ilusória pareceu dar mais certo foi essa:
O código ta dando sempre como resultado nulo, e se por algum motivo eu troco o valor do parametro c1[] pra "10" e o zero sendo comparado com o vl2 pra "00" o resultado sempre é "feliz" independente da lógica ser certa ou n, me socorram, acredito q o problema seja com as strings, a forma q declarei elas ou qualquer coisa assim, agradeço desde já s2
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.