Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1235 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Conversion d'une chaine de caracteres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Conversion d'une chaine de caracteres

n°1553416
yartempion
Posté le 03-05-2007 à 21:04:51  profilanswer
 

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

mood
Publicité
Posté le 03-05-2007 à 21:04:51  profilanswer
 

n°1553419
Trap D
Posté le 03-05-2007 à 21:09:52  profilanswer
 

"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.

n°1553422
yartempion
Posté le 03-05-2007 à 21:18:46  profilanswer
 

Est ce que ça marche sous linux et unix?

n°1555091
Trap D
Posté le 03-05-2007 à 22:14:14  profilanswer
 

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 !

n°1555102
dap++
Script kiddie
Posté le 03-05-2007 à 22:39:43  profilanswer
 

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 :
  1. variable &= 0xDF;
 

Je suppose qu'il suffit de faire ça en boucle jusqu'à avoir un null.

Message cité 1 fois
Message édité par dap++ le 03-05-2007 à 22:40:54
n°1555110
yartempion
Posté le 03-05-2007 à 23:17:51  profilanswer
 

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.

n°1555129
Elmoricq
Modérateur
Posté le 04-05-2007 à 07:20:02  profilanswer
 

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 :

 
Code :
  1. variable &= 0xDF;
 

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.  [:cerveau hahaguy]

   


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'

Message cité 1 fois
Message édité par Elmoricq le 04-05-2007 à 07:21:29
n°1555309
dap++
Script kiddie
Posté le 04-05-2007 à 13:53:09  profilanswer
 

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.  [:cerveau hahaguy]


 
Tiens c'est pas con. :o

n°1555376
tarteens
Posté le 04-05-2007 à 14:45:34  profilanswer
 

tu peux essaier un truc comme ca, c'est pas super propre, enfin du moins t'es obligé de faire une boucle :  
 

Code :
  1. int main ()
  2. {
  3.      char mastring[] = "Salut ca va BIeEN par @@ exemple"
  4.      for (int i=0;i<strlen(mastring);i++)
  5.      {
  6.          if (mastring[i]>= 'a' && mastring[i] <= 'z')
  7.                 mastring[i] -= 0x20;
  8.      }
  9.      return EXIT_SUCCESS;
  10. }

Message cité 1 fois
Message édité par tarteens le 04-05-2007 à 15:09:35

---------------
il y a 10 types de personnes, ceux qui comprennent le binaire, et les autres - Profile Path of Exile
n°1555381
Elmoricq
Modérateur
Posté le 04-05-2007 à 14:51:07  profilanswer
 

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 :
  1. char blabla[] = "sdomfjeso sporjzpOIUYHIRUZT ¨Zs ,sncçs_qus'é&è";
  2.  
  3. for(unsigned i = 0; blabla[i] != '\0'; ++i)
  4.   blabla[i] = toupper(blabla[i]);



Message édité par Elmoricq le 04-05-2007 à 14:51:26
mood
Publicité
Posté le 04-05-2007 à 14:51:07  profilanswer
 

n°1555387
tarteens
Posté le 04-05-2007 à 14:57:06  profilanswer
 

lol dsl de la grosse boulette, j'ai modifier le code, ca marchera déjà mieux


---------------
il y a 10 types de personnes, ceux qui comprennent le binaire, et les autres - Profile Path of Exile
n°1555390
Elmoricq
Modérateur
Posté le 04-05-2007 à 14:59:44  profilanswer
 

Ton strlen() va être réévalué à chaque passage de la boucle [:dawa]

n°1555578
Trap D
Posté le 04-05-2007 à 22:01:56  profilanswer
 

tarteens a écrit :

Code :
  1. if (mastring[i]>= 'a' && mastring[i] <= 'z')
  2.                 mastring[i] -= 0x20;


Pas portable, ça ne "marche" que pour le code ASCII pas pour l'EBCDIC.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Conversion d'une chaine de caracteres

 

Sujets relatifs
Remplacement/suppression d'un chaine de caractère dans un fichiercaractères spéciaux
[résolu] Probleme pour connaitre la taille d'une chaine de caracteres[php] Remplace tout les \n entre "" dans une chaine
chaine caractèresComparaison de Chaine de caractères, déplacement DOM
Demande d'Aide conversion de chaine de caractères[Fortran 95] Conversion de types numériques en chaine de caractères
Conversion d'une chaine de caractères en identificateur de variableConversion chaine de caracteres vers entier??
Plus de sujets relatifs à : Conversion d'une chaine de caracteres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR