majuscule__nimuscule

majuscule__nimuscule - C - Programmation

Marsh Posté le 11-03-2006 à 16:33:46    

salut ;
je veux tout simplement savoire : s'il existe une fonction ou instruction en c , qui permet de con vertire les majuscules en minuscules et vice_verca.
merci de me réponde.  :)

Reply

Marsh Posté le 11-03-2006 à 16:33:46   

Reply

Marsh Posté le 11-03-2006 à 16:40:16    

Salut,
 
Oui ca existe, c'est toupper(char a convertir) => majuscule
                           tolower(char a convertir) => minuscule
 
Inclure la librairie <ctype.h>
 
A++

Reply

Marsh Posté le 11-03-2006 à 16:48:04    

MAD_DIM a écrit :

Inclure la librairie <ctype.h>


Argh ! Fichier d'en-tête. Merci d'être précis avec le vocabulaire. C'est déjà assez compliqué comme ça...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 11-03-2006 à 16:50:46    

MAD_DIM a écrit :

Salut,
 
Oui ca existe, c'est toupper(char a convertir) => majuscule
                           tolower(char a convertir) => minuscule
 
Inclure la librairie <ctype.h>
 
A++


 
merci , ca marche oui;   mais je ve dans mon prog que si l'utilisateur donne automatiquemznt des majuscules (il seront convertie en minuscules)  , et si il donne des minuscule (il seront convertie en majuscule)  

Reply

Marsh Posté le 11-03-2006 à 16:51:58    

uleur a écrit :

merci , ca marche oui;   mais je ve dans mon prog que si l'utilisateur donne automatiquemznt des majuscules (il seront convertie en minuscules)  , et si il donne des minuscule (il seront convertie en majuscule)


isupper()
islower().
 
Ouvrir un livre de C, lire la doc... être curieux...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 12-03-2006 à 17:41:07    

j'ai trouvé dans un cours le programme suivant : mais je ne comprand pas bien la partie  

Code :
  1. if(C[i]>='A' && C[i]<='Z')  C[i]=C[i]-'A'+'a';
  2.  else if(C[i]>='a' && C[i]<='z')  C[i]=C[i]-'a'+'A';


 

Code :
  1. C[i]=C[i]-'A'+'a';

j'ai jamais vu ca !!!
 
 
 

Code :
  1. #include<stdio.h>
  2. #include<string.h>
  3. main() {   char C[101];
  4.     int i,bool=0;
  5. puts("donnez un mot   \n" );
  6. gets(C);
  7. for(i=0;i<strlen(C);i++)
  8. if( !(C[i]>='A' && C[i]<='Z') &&  !(C[i]>='a' && C[i]<='z') )   bool=1;
  9. if(bool)   printf("\n\nPOUR TON INFORMATION : un mot contien des lettre selement (non accentuer SVP)" );
  10. else
  11. {
  12. printf("\napré tretement ce mot deviendra :\n\n" );
  13. for(i=0;i<strlen(C);i++)
  14.  {
  15.   if(C[i]>='A' && C[i]<='Z')  C[i]=C[i]-'A'+'a';
  16.  else if(C[i]>='a' && C[i]<='z')  C[i]=C[i]-'a'+'A';
  17.   printf("%c",C[i]);
  18. }
  19.   }
  20. }

Reply

Marsh Posté le 12-03-2006 à 17:51:40    

uleur a écrit :

j'ai trouvé dans un cours le programme suivant


C'est du code d'implémenation non portable. Aucun intérêt. Qu'est-ce qui ne pas pas avec les fonctions standards proposées ?

Message cité 1 fois
Message édité par Emmanuel Delahaye le 12-03-2006 à 17:51:53

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 12-03-2006 à 17:53:49    

Ouvrir un livre de C, lire la doc...

Reply

Marsh Posté le 12-03-2006 à 18:07:02    

Emmanuel Delahaye a écrit :

C'est du code d'implémenation non portable. Aucun intérêt. Qu'est-ce qui ne pas pas avec les fonctions standards proposées ?


 
mes je ve savoir à quoi saire :

Code :
  1. C[i]=C[i]-'A'+'a';


je ne comprand pas!

Reply

Marsh Posté le 12-03-2006 à 18:18:32    

uleur a écrit :

mes je ve savoir à quoi saire :

Code :
  1. C[i]=C[i]-'A'+'a';


je ne comprand pas!


Moi non plus. Tu peux le redire en français ? Y'a de l'abus, là, non ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 12-03-2006 à 18:18:32   

Reply

Marsh Posté le 24-03-2006 à 11:29:44    

Sur un caractere majuscule faire -'A' le "ramene" a 0 plus un offset;
ajouter l'offset des minuscules 'a' revient a le tranformer en minuscule.
 
Sur un caractere minuscule faire -'a' le "ramene" a 0 plus un offset;
ajouter l'offset des majuscules 'A' revient a le tranformer en majuscule.

Reply

Marsh Posté le 24-03-2006 à 11:38:33    

tisouytni a écrit :

Sur un caractere majuscule faire -'A' le "ramene" a 0 plus un offset;
ajouter l'offset des minuscules 'a' revient a le tranformer en minuscule.
 
Sur un caractere minuscule faire -'a' le "ramene" a 0 plus un offset;
ajouter l'offset des majuscules 'A' revient a le tranformer en majuscule.


Pas portable.
 
Il faut utiliser tolower() / toupper(), c'est fait pour... (<ctype.h> )
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 24-03-2006 à 21:26:46    

C'est juste une explication.
 
C'est vrai qu'il vaut mieux utiliser les fonction déjà prêtes.

Reply

Marsh Posté le 26-03-2006 à 22:53:33    

tisouytni a écrit :

C'est juste une explication.


Pas portable. Elle ne concerne qu'un type donné de charset... Essaye en EBCDIC...

Citation :


C'est vrai qu'il vaut mieux utiliser les fonction déjà prêtes.


C'est surtout la seule façon d'être portable...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 26-03-2006 à 23:45:37    

Pour  faire une permutation:
 
C[i] = (C[i] >= 'A' && C[i] <= 'Z') ? C[i] - 'A' + 'a' :
          (C[i] >= 'a' && C[i] <= 'z') ? C[i] - 'a' + 'A' : C[i];
 
Comme ca les MAJ -> min, les min->MAJ et le reste ne bouge pas


Message édité par MarmottePower le 26-03-2006 à 23:48:33
Reply

Marsh Posté le 27-03-2006 à 00:31:37    

on a pas fini de le repeter, ce n'est pas portable

Reply

Marsh Posté le 27-03-2006 à 01:43:29    

Mouais... on va dire que ca ne passe pas avec de l'unicode, mais ca passe toujours avec la table ascii

Reply

Marsh Posté le 27-03-2006 à 09:04:04    

MarmottePower a écrit :

Mouais... on va dire que ca ne passe pas avec de l'unicode, mais ca passe toujours avec la table ascii


Ni avec EBCDIC... Que ça te plaise ou non, il y a des gens qui travaillent en C sur mainframes IBM...
 
http://www.natural-innovations.com [...] bcdic.html
 
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 27-03-2006 à 09:04:10    

skelter a écrit :

on a pas fini de le repeter, ce n'est pas portable


et alors ?

Reply

Marsh Posté le 27-03-2006 à 09:06:36    


Alors il faut préciser le contexte, sinon, la solution risque d'être reprise hors contexte et de ne pas fonctionner. Nous n'avons pas pour vocation de fournir du code érroné.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 28-03-2006 à 11:00:12    

Emmanuel Delahaye a écrit :

Alors il faut préciser le contexte, sinon, la solution risque d'être reprise hors contexte et de ne pas fonctionner. Nous n'avons pas pour vocation de fournir du code érroné.


 :wahoo: , :wahoo:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed