Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/09/2007, à 14: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 ? hmm

merci smile

Edit : j'ai peut etre une solution mais je ne sais pas si cela est vrement utile hmm

printf("%xn", 'ñ'); ----> c3b1

Ok mais je le compare comment a mon str[i] hmm
snif un truc aussi con quoi hmm

Thx smile

Dernière modification par pixi-pix (Le 13/09/2007, à 14:35)

Hors ligne

#2 Le 13/09/2007, à 14:39

Watchwolf

Re : Code ascii petit problem :)

essaye deja de mettre ton caractère dans un char smile
tu aura une surprise je pense.

Hors ligne

#3 Le 13/09/2007, à 15:14

pixi-pix

Re : Code ascii petit problem :)

int main()
{
  char c = '\xc3b1';

  printf("%x\n", 'ñ');
  if ('ñ' == c)
    printf("plop\n");
}

hmm

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 hmm


je vois pas comment le foutre dans le char sans qu'il me pete une erreur hmm

char c = "\xc3b1";
char c = '\xc3b1';
char c = "c3b1";
char c = 'c3b1';

Dernière modification par pixi-pix (Le 13/09/2007, à 15:17)

Hors ligne

#4 Le 13/09/2007, à 15: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 smile il est "out of range"

Hors ligne

#5 Le 13/09/2007, à 15:50

pixi-pix

Re : Code ascii petit problem :)

la je veux bien un coup de main hmm l'utilisation d'un gchar ne  vas pas changer quelque chose hmm

Hors ligne

#6 Le 13/09/2007, à 16: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, à 16: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 smile

Hors ligne

#8 Le 13/09/2007, à 17: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

#10 Le 14/09/2007, à 10:39

pixi-pix

Re : Code ascii petit problem :)

int main()
{
  char *c = "ñ";

  if (!strcmp(c, "ñ"))
    printf("plop\n");
}

merci sa marche smile

Hors ligne

#11 Le 14/09/2007, à 16: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