Plop,
bon j'ai décidé d'apprendre un language fait piur les hommes, les vrais
alors j'ai acheté le "Language C" des 2 barbus,
je suis au chapitre 1 et j'essaie de faire des petites trucs tous cons avant de poursuivre mais je bloque déja :-(
Code :
- #include <stdio.h>
- #define IN 1
- #define OUT 0
- #define MAXCHARS 1000
- int recv(char s[])
- {
- int i;
- for (i = 0; (s[i] = getchar()) != EOF; ++i)
- ;;
- s[i] = '\0';
- return i;
- }
- int length(char s[])
- {
- int i;
- for (i = 0; s[i] != '\0'; ++i)
- ;;
- return i;
- }
- void reverse(char s[])
- {
- int i = 0;
- int len = length(s) - 1;
- char ss[MAXCHARS];
- /* copy s to ss */
- while ((ss[i] = s[i]) != '\0')
- ++i;
-
- for (i = 0; i <= len; ++i)
- s[i] = ss[len-i];
- }
-
- void lstrip(char s[])
- {
- int i = 0;
- int j = 0;
- int where = OUT;
- char ss[MAXCHARS];
-
- while ((ss[i] = s[i]) != '\0')
- ++i;
- for (i = 0; ss[i] != '\0'; ++i) {
- if ((ss[i] == ' ') && (where == OUT))
- continue;
- where = IN;
- s[j] = ss[i];
- ++j;
- }
- s[j] = '\0';
- }
- void rstrip(char s[])
- {
- printf("%d", length(s));
- reverse(s);
- printf("%d", length(s));
- lstrip(s);
- printf("%d", length(s));
- reverse(s);
- }
- int main(void)
- {
- char s[MAXCHARS];
-
- recv(s);
- rstrip(s);
- return 0;
- }
|
les printf dans la fonction rstrip() devraient me renvoyer des valeurs différentes si la valeur de la chaîne entrée contient des espaces à la fin
"lalala "
mais j'obtiens toujours le même nombre de caractères, pourtant quand j'utilise reverse() tout seul ca marche, idem pour lstrip()
une idée? ca fait une heure je suis dessus