Pages : 1
#1 Le 13/09/2007, à 13:16
- pixi-pix
Code ascii petit problem :)
Bonjour
Bon je connais man ascii pas de soucis mais esque on peut me dire comment faire une comparaison de caractere avec un truc du genre
'ñ'
parseque bon gcc il est pas content if (str[i] == 'ñ')
:34: warning: comparison is always false due to limited range of data type
je le comprend mais je dois mettre quoi a la place ?
merci
Edit : j'ai peut etre une solution mais je ne sais pas si cela est vrement utile
printf("%xn", 'ñ'); ----> c3b1
Ok mais je le compare comment a mon str[i]
snif un truc aussi con quoi
Thx
Dernière modification par pixi-pix (Le 13/09/2007, à 13:35)
Hors ligne
#2 Le 13/09/2007, à 13:39
- Watchwolf
Re : Code ascii petit problem :)
essaye deja de mettre ton caractère dans un char
tu aura une surprise je pense.
Hors ligne
#3 Le 13/09/2007, à 14:14
- pixi-pix
Re : Code ascii petit problem :)
int main()
{
char c = '\xc3b1';
printf("%x\n", 'ñ');
if ('ñ' == c)
printf("plop\n");
}
user@chau9bta:~/Desktop/proj/latex$ gcc test.c
test.c:3:12: warning: hex escape sequence out of range
test.c: In function ‘main’:
test.c:5: warning: incompatible implicit declaration of built-in function ‘printf’
test.c:5:18: warning: multi-character character constant
test.c:6:7: warning: multi-character character constant
test.c:6: warning: comparison is always false due to limited range of data type
user@chau9bta:~/Desktop/proj/latex$ ./a.out
c3b1
user@chau9bta:~/Desktop/proj/latex$
il ne me donne rien de bon
je vois pas comment le foutre dans le char sans qu'il me pete une erreur
char c = "\xc3b1";
char c = '\xc3b1';
char c = "c3b1";
char c = 'c3b1';
Dernière modification par pixi-pix (Le 13/09/2007, à 14:17)
Hors ligne
#4 Le 13/09/2007, à 14:45
- Watchwolf
Re : Code ascii petit problem :)
regarde du coté de la glib et des accents.
Tu ne pourra jamais mettre ton caractère dans un char il est "out of range"
Hors ligne
#5 Le 13/09/2007, à 14:50
- pixi-pix
Re : Code ascii petit problem :)
la je veux bien un coup de main l'utilisation d'un gchar ne vas pas changer quelque chose
Hors ligne
#6 Le 13/09/2007, à 15:27
- alexmic
Re : Code ascii petit problem :)
Je ne connais pas c mais je pense qu'il ne veut pas que tu lui mettes un seul char dans un String. essaie de faire une concaténation avec un " " (espace devant et de comparer à nouveau...
en ruby ça donnerait
maString2=Mastring + " "
monCar=" ñ"
boolean = (maString2)==monCar
OMG Lawl pwnd rofl... Plaît-il?
Hors ligne
#7 Le 13/09/2007, à 15:28
- Watchwolf
Re : Code ascii petit problem :)
le langage c ne fonctionne pas du tout comme ca avec les chaines. Le type string n'existe meme pas
Hors ligne
#8 Le 13/09/2007, à 16:05
- Watchwolf
Re : Code ascii petit problem :)
Je viens de faire un test. Si tu fait:
char s[]="ñ"
ca fonctionne impec. Ensuite tu peut utiliser strcmp() pour la comparaison de 2 chaines
. Pense donc à mettre ton second caractère dans une chaine pour la comparaison. (rappel: chaine de 1 caractere = 'c'+'\0')
Hors ligne
#9 Le 14/09/2007, à 07:12
- pixi-pix
Re : Code ascii petit problem :)
Oki je vais tester sa
Hors ligne
#10 Le 14/09/2007, à 09:39
- pixi-pix
Re : Code ascii petit problem :)
int main()
{
char *c = "ñ";
if (!strcmp(c, "ñ"))
printf("plop\n");
}
merci sa marche
Hors ligne
#11 Le 14/09/2007, à 15:03
- telliam
Re : Code ascii petit problem :)
le caractere ñ est vu par gcc comme la suite de 2 caracteres car il ne fait pas partir de la table ASCII standard, ce qui fait que la comparaison de 2 caracteres avec un seul est problematique pour le compilo( d'ou le warning de gcc)
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
Pages : 1