bonjour,
J'aimerais créé une fonction qui permet de remplacer tous les caractère non imprimable par des espaces dans une chaine de caractère passer en paramètre.
Mais comment savoir si un caractère n'est pas imprimable?
Merci.
bonjour,
J'aimerais créé une fonction qui permet de remplacer tous les caractère non imprimable par des espaces dans une chaine de caractère passer en paramètre.
Mais comment savoir si un caractère n'est pas imprimable?
Merci.
Merci.
J'ai réalisé cette fonction mais ça me met l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int k; for(k=0;k<strlen(chaine);k++) { if(!isprint((int) chaine[k])) { chaine[k]=" "; } }
"1219 C:\Documents and Settings\Administrateur\Bureau\dev c\MEFEQsansbuf_v3.c [Warning] assignment makes integer from pointer without a cast "
pourtant je caste bien ma chaine en int
edit: non c'est bon trouvé
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 int k; for(k=0;k<strlen(chaine);k++) { if(!isprint((int) chaine[k])) { chaine[k]=' '; } }
chaine[k]=' ' vs chaine[k]=" " (Edit: corrigé depuis)
Et ce n'est pas en int qu'il faut caster mais en unsigned char (qui sera implicitement promu en int), sinon ça ne sert à rien.
Merci.
Comment je pourrais tester si ma fonction fonctionne bien?
comment représenté mon caractère non imprimable?
OK, je l'avais oublié, merci...
Oui, mais ça ne fonctionne pas en C directement. '^X' n'est pas control-X.Une autre notation (pour l'ASCII) est la notation "control-X" ou "CTRL-X" ou "^X" qui designe le caractere de code 64 de moins ou de plus que le code de X (^@ est NUL, ^[ est ESC, ^? est DEL).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> int main (void) { printf ("%d\n", '^C'); /* 3 */ printf ("%d\n", '^['); /* 27 (ESC) */ return 0; }Par contre, on peut faire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 24131 24155 Process returned 0 (0x0) execution time : 0.014 s Press any key to continue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <stdio.h> /* ASCII */ #define CTRL(a) ((a) & 0x1F) int main (void) { printf ("%d\n", CTRL ('C')); /* 3 */ printf ("%d\n", CTRL ('[') ; /* 27 (ESC) */ return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 3 27 Process returned 0 (0x0) execution time : 0.055 s Press any key to continue.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager