• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

x3minater

vectores de strings

5 mensagens neste tópico

Boas,

to aqui com uma dúvida parva atravessada. É o seguinte:

o programa faz uma conta e se for  maior que 9.5 dá um valor (string) ao vector, se for menor da um diferente:

char res[6];

...

if (nf<=9.5)
    res[6] = "REP";
else
    res[6] = "Aprov";

printf("%s",res);

o resto do programa tenho quase a certeza que está bem e que não influencia isso. O que eu não sei é se posso fazer essa atribuiçao de strings ou se é assim que deve ser imprimida...

Agradecia qualquer ajuda.  :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é uma string ou um vector de caracteres, e não um vector de strings.

Para copiares a string para a variável deves fazer:

strcpy(res, "REP");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é uma string ou um vector de caracteres, e não um vector de strings.

Para copiares a string para a variável deves fazer:

strcpy(res, "REP");

ah pois é, já n me lembrava desse promenor :)

Thanks a lot :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tinhas vários problemas ao fazer res[6] = "...".

Um é que estavas a atribuir qualquer coisa apenas à 7ª posição do array. [6] indexa apenas 1 posição.

Outro é que estavas a tentar usar uma posição que não existe, pois o array que declaraste tem apenas 6 posições e estavas a aceder à 7ª, que é como quem diz, estavas a corromper memória, a escrever por cima de outros dados do programa.

Entendeste porque é que tens que usar strcpy(res, "...")?... Responderes que só querias saber a solução também é uma resposta válida.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tinhas vários problemas ao fazer res[6] = "...".

Um é que estavas a atribuir qualquer coisa apenas à 7ª posição do array. [6] indexa apenas 1 posição.

Outro é que estavas a tentar usar uma posição que não existe, pois o array que declaraste tem apenas 6 posições e estavas a aceder à 7ª, que é como quem diz, estavas a corromper memória, a escrever por cima de outros dados do programa.

Entendeste porque é que tens que usar strcpy(res, "...")?... Responderes que só querias saber a solução também é uma resposta válida.

lol, ya Njay, precebi :)

É que eu fiquei as férias todas sem olhar para programação, e agora que estou a ter novamente a cadeira já n me lembrava de algumas coisas. Isso que tu disseste também não me lembrava, mas agora que me lembras-te já faz sentido o programa n ter funcionado.

Thanks ao dois :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora