défilement de caractères de gauche à droite - C - Programmation
Marsh Posté le 16-05-2005 à 11:25:57
désolé...
for (i=nb_char-1;i>0;i--) phrase[i]=phrase[i-1];
au lieu de
for (i=0;i<nb_char-2;i++) phrase[nb_char-1-i]=phrase[nb_char-2-i];
et c'est tout bon
il n'empêche que je ne comprends toujours pas pourquoi ça ne fonctionne pas...
Marsh Posté le 16-05-2005 à 11:50:26
for (i=0;i<nb_char-1;i++) phrase[nb_char-1-i]=phrase[nb_char-2-i];
ou
for (i=0;i<=nb_char-2;i++) phrase[nb_char-1-i]=phrase[nb_char-2-i];
Marsh Posté le 16-05-2005 à 12:57:12
skelter a écrit : for (i=0;i<nb_char-1;i++) phrase[nb_char-1-i]=phrase[nb_char-2-i]; |
merci... coup classique
Marsh Posté le 16-05-2005 à 15:32:33
bipeuh a écrit : tuel ne fonctionne pas et je ne comprends pas pourquoi... |
Meuh...
../main.c:13: warning: function declaration isn't a prototype |
Une bonne occasion d'utiliser memmove()... (pas subtil, mais simple et correct). On pourraut être plus fin et éviter ces copies incessantes en utilisant un ou deux index de lecture tournant...
|
Marsh Posté le 25-05-2005 à 10:54:49
c'est tout de suite plus élégant!
Marsh Posté le 16-05-2005 à 11:04:28
je cherche à réaliser un prog c qui décale d'un rang les caractères une chaine de gauche à droite. Par exemple :
"oooooooo>>>>>>>>"
">oooooooo>>>>>>>"
">>oooooooo>>>>>>"
">>>oooooooo>>>>>"
">>>>oooooooo>>>>"
">>>>>oooooooo>>>"
etc à chaque itération. Sachant que je dois rediriger le flux vers un afficheur LCD 8 caractères, je réalise ensuite un masque sur les 8 premiers caractères avec %.8s dans mon printf.
mon code actuel ne fonctionne pas et je ne comprends pas pourquoi...
int main()
{
char phrase[58];
char tampon;
int k = 0;
int i = 0;
int nb_char = 0;
sprintf(phrase,"oooooooo>>>>>>>>" );
nb_char=strlen(phrase);
for (k=0;k<30;k++)
{
tampon = phrase[nb_char-1];
for (i=0;i<nb_char-2;i++) phrase[nb_char-1-i]=phrase[nb_char-2-i];
phrase[0]=tampon;
printf("%.8s\n",phrase);
}
return 0;
}
En effet, j'obtiens :
>ooooooo
>ooooooo
>ooooooo
>ooooooo
>ooooooo
>ooooooo
>ooooooo
>ooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
oooooooo
---------------
celui qui pose une question est idiot 5 minutes, celui qui n'en pose pas le reste toute sa vie.