Conversion d'une chaine de caracteres - C - Programmation
Marsh Posté le 03-05-2007 à 21:09:52
"strupr" mais je ne sais pas si ça existe sur tous les sytèmes, sinon tu écris toi même la boucle sur tous les caractères de la chaîne.
Marsh Posté le 03-05-2007 à 22:14:14
Tout ce que je peux dire, ce n'est pas ANSI , je pense que ça n'existe pas sous linux/unix (ça doit dépendre de tes lib) , mais en fait je n'en sais rien.
Ecris-toi la boucle, ce sera aussi simple !
Marsh Posté le 03-05-2007 à 22:39:43
Salut,
Si je ne dis pas de connerie pour forcer un caractère à se mettre en majuscule il suffit de passer le bit 5 à zéro, donc une instruction comme ça devrait marcher :
Code :
|
Je suppose qu'il suffit de faire ça en boucle jusqu'à avoir un null.
Marsh Posté le 03-05-2007 à 23:17:51
Merci à tous,
Il y a pleins dastuces, on peut aussi verifier que le caractere est une minuscule et ajouter un nombre pour avoir la majuscule etc etc etc.
Bon je vais faire sans fonction établie.
Salut et encore merci.
Marsh Posté le 04-05-2007 à 07:20:02
Trap D a écrit : "strupr" mais je ne sais pas si ça existe sur tous les sytèmes, sinon tu écris toi même la boucle sur tous les caractères de la chaîne. |
Fonction inconnue au bataillon des fonctions ANSI C et POSIX. C'est donc propre à ton système ou à une bibliothèque tierse que tu auras installée.
dap++ a écrit : Salut, Si je ne dis pas de connerie pour forcer un caractère à se mettre en majuscule il suffit de passer le bit 5 à zéro, donc une instruction comme ça devrait marcher :
Je suppose qu'il suffit de faire ça en boucle jusqu'à avoir un null. |
J'attends avec impatience de voir ce que ça donnera quand tu traduiras "Ce week-end, je dépenserai 20 à la foire." avec cette méthode.
yartempion > toupper() fait très bien ce que tu cherches à faire. Il te suffit d'écrire une boucle while() pour convertir la chaîne en entier, la condition d'arrêt étant la rencontre du caractère de fin de chaîne '\0'
Marsh Posté le 04-05-2007 à 13:53:09
Elmoricq a écrit : J'attends avec impatience de voir ce que ça donnera quand tu traduiras "Ce week-end, je dépenserai 20 à la foire." avec cette méthode. |
Tiens c'est pas con.
Marsh Posté le 04-05-2007 à 14:45:34
tu peux essaier un truc comme ca, c'est pas super propre, enfin du moins t'es obligé de faire une boucle :
Code :
|
Marsh Posté le 04-05-2007 à 14:51:07
MAIS NON BOURDEL §§§ /FOU/ /FOU/ /MECHANT/
Déjà ta chaîne elle fait 32 de longueur, donc mastring doit faire au MINIMUM 33 de long.
Enfin, pourquoi s'entêter à ne pas utiliser toupper() qui est fait pour ça ? C'est pas assez bien pour vous, ça fait pas assez 3l33t ?
Code :
|
Marsh Posté le 04-05-2007 à 14:57:06
lol dsl de la grosse boulette, j'ai modifier le code, ca marchera déjà mieux
Marsh Posté le 04-05-2007 à 14:59:44
Ton strlen() va être réévalué à chaque passage de la boucle
Marsh Posté le 04-05-2007 à 22:01:56
tarteens a écrit :
|
Pas portable, ça ne "marche" que pour le code ASCII pas pour l'EBCDIC.
Marsh Posté le 03-05-2007 à 21:04:51
Bonjour,
Je cherche a convertir une chaine de caracteres minuscules->MAJUSCULES.
J'ai essayé avec toupper() mais apparement cette fonction n'accepte qu'un caractere hors moi ce dont je dispose c'est d'un pointeur .
Y'a t'il une solution?
Merci