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

  FORUM HardWare.fr
  Programmation
  C

  de minuscule à majuscule

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

de minuscule à majuscule

n°1026542
jayibee
Posté le 27-03-2005 à 01:01:25  profilanswer
 

Bonsoir,
 
Je dois écrire un programme qui convertit une entrée en minuscule en majuscule.
 
Le problème est que je ne sais pas comment faire !
 
Je voudrais savoir quelle est la différence entre un caractère minuscule et un caractère majuscule (est-ce un paramètre ?).
 
En cours nous utilisons C++ Builder 6.
 
Merci de votre aide.

mood
Publicité
Posté le 27-03-2005 à 01:01:25  profilanswer
 

n°1026566
Pillow
'cos the trees won't talk
Posté le 27-03-2005 à 01:38:41  profilanswer
 

La différence entre une majuscule et une minuscule?

Code :
  1. char diff = 'A' - 'a';

[:spamafote]

n°1026611
matafan
Posté le 27-03-2005 à 05:01:50  profilanswer
 

TOUPPER(3)                 Linux Programmer's Manual                TOUPPER(3)
 
 
 
NAME
       toupper, tolower - convert letter to upper or lower case
 
SYNOPSIS
       #include <ctype.h>
 
       int toupper(int c);
       int tolower(int c);
 
DESCRIPTION
       toupper() converts the letter c to upper case, if possible.
 
       tolower() converts the letter c to lower case, if possible.
 
       If  c  is  not  an  unsigned char value, or EOF, the behaviour of these
       functions is undefined.
 
RETURN VALUE
       The value returned is that of the converted letter, or c if the conver-
       sion was not possible.
 
CONFORMING TO
       ANSI C, BSD 4.3
 
BUGS
       The details of what constitutes an uppercase or lowercase letter depend
       on the current locale.  For example, the default "C"  locale  does  not
       know about umlauts, so no conversion is done for them.
 
       In some non - English locales, there are lowercase letters with no cor-
       responding uppercase equivalent; the German sharp s is one example.
 
SEE ALSO
       isalpha(3), setlocale(3), locale(7)
 
 
 
GNU                               1993-04-04                        TOUPPER(3)

n°1026633
Emmanuel D​elahaye
C is a sharp tool
Posté le 27-03-2005 à 10:14:16  profilanswer
 

Pillow a écrit :

La différence entre une majuscule et une minuscule?

Code :
  1. char diff = 'A' - 'a';

[:spamafote]


pas portable.
 
Il faut utiliser tolower() / toupper() de <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/
n°1026767
jayibee
Posté le 27-03-2005 à 14:58:36  profilanswer
 

Merci de vos réponses.
 
En réponse à annadivx, j'avais vu ce post mais j'ai rien compris à la réponse.
 
J'ai essayé un programme avec ctype.h
 
Voila le code :
 

Code :
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <ctype.h>
  4. void main()
  5. {
  6. char C;
  7. cin>>C;
  8. C=toupper(C);
  9. cout<<C;
  10. getch();
  11. }


 
Le problème c'est que lors de l'éxécution, le programme ne me donne que la première lettre de la chaîne de caractère. Je voudrais qu'il me convertisse toute la chaîne.   :??:  
 
Que faut-il corriger ?
 

n°1026769
Emmanuel D​elahaye
C is a sharp tool
Posté le 27-03-2005 à 15:03:59  profilanswer
 

Choisis ton langage camarade. C != C++...
 

jayibee a écrit :


Code :
  1. #include <iostream.h>
  2. /* -ed- pas du C... et du mauvais C++... */
  3. #include <conio.h>
  4. /* -ed- Quelle salade! Mauvais C++  */
  5. #include <ctype.h>
  6. void main()
  7. /* -ed- [C] main() retourne int. */
  8. {
  9. char C;
  10. cin>>C;
  11. /* -ed- pas du C... */
  12. C=toupper(C);
  13. cout<<C;
  14. /* -ed- pas du C... */
  15. getch();
  16. }


Le problème c'est que lors de l'éxécution, le programme ne me donne que la première lettre de la chaîne de caractère. Je voudrais qu'il me convertisse toute la chaîne.   :??:  
 
Que faut-il corriger ?


 
Il faut écrire la fonction qui traite tous les caractères de la chaine (while...).


---------------
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/
n°1026777
jayibee
Posté le 27-03-2005 à 15:14:27  profilanswer
 

Je débute en programation et le langage que j'ai utilisé est celui que nous utilisons pour tous nos exercices et exemples...
 
A propos de ta fonction, tu peux m'en dire plus ?

n°1026786
Emmanuel D​elahaye
C is a sharp tool
Posté le 27-03-2005 à 15:24:44  profilanswer
 

jayibee a écrit :

Je débute en programation et le langage que j'ai utilisé est celui que nous utilisons pour tous nos exercices et exemples...


Alors C ou C++ ? C'est pas le même langage, c'est pas les même balises.

Citation :

A propos de ta fonction, tu peux m'en dire plus ?


Ben  

  • Parcourir la chaine (qui est terminée par un 0, je le rappelle au cas où...)
  • Convertir chaque caractère avec tolower()

Evidemment, la chaine doit être modifiable...
 
Fait de ton mieux et poste ton code...
 


---------------
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/
n°1026792
jayibee
Posté le 27-03-2005 à 15:38:39  profilanswer
 

ok je comprend l'idée, mais je ne sais pas comment on fait pour parcourir la chaine ...

n°1026818
cricri_
Posté le 27-03-2005 à 17:03:25  profilanswer
 

Emmanuel t'a déjà tout dit ...
Truc du genre :

Code :
  1. char *pChaine = MaChaineAconvertir;
  2. while ( *pChaine) { /* test fin de chaine = 0 */
  3.    *pChaine = tolower( *pChaine);
  4.    pChaine++;
  5. }


Message édité par cricri_ le 27-03-2005 à 17:09:16
mood
Publicité
Posté le 27-03-2005 à 17:03:25  profilanswer
 

n°1026892
jayibee
Posté le 27-03-2005 à 20:49:40  profilanswer
 

Merci de votre aide, mais je suis complètement perdu.
 
Voila le code que j'ai écrit :
 

Code :
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <ctype.h>
  4. void main()
  5. {char MaChaineAconvertir;
  6. cin>>MaChaineAconvertir;
  7. char *pChaine=  MaChaineAconvertir;
  8. while ( *pChaine) { /* test fin de chaine = 0 */
  9.    *pChaine = toupper( *pChaine);
  10.    pChaine++;
  11. }
  12. }


 
Y a des erreurs partout mais je ne sais pas quoi faire de plus.
 
Bonne soirée
 
Edit : ca veut dire quoi le "*" dans *pChaine ?


Message édité par jayibee le 27-03-2005 à 20:50:43
n°1026895
KangOl
Profil : pointeur
Posté le 27-03-2005 à 20:54:28  profilanswer
 

heu il serait peut etre temps d'acheter un bouquin non ??


---------------
Nos estans firs di nosse pitite patreye...
n°1026904
jayibee
Posté le 27-03-2005 à 21:07:12  profilanswer
 

ouais ... J'ai déja fait un tour de différents tutoriaux en ligne mais j'y comprend rien. Je ne retrouve rien de ce que j'ai appris dans mon cours.

n°1026924
dark86
Posté le 27-03-2005 à 21:59:25  profilanswer
 

le * apres un type c'est pour indiquer un pointeur vers ce type (contient l'adresse de ton element)
si tu n'as pas vu les poointeurs, ca devient :
 
for(int i=0;i<strlen(MaChaine);i++)//strlen renvoie la longueur de l'argument  
    MaChaine[i]=toupper(MaChaine[i]);
 
mais c'est quand meme bizarre de vous enseigner le C++ sans les bases du C....

n°1026960
jayibee
Posté le 27-03-2005 à 22:28:39  profilanswer
 

ok, mon code devient :
 

Code :
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <ctype.h>
  4. void main()
  5. {char C;
  6. cin>>C;
  7. for(int i=0;i<strlen(C);i++)
  8.     {C[i]=toupper(C[i]);}
  9. cout<<C;
  10. }


 
Mais le compilateur me surligne la ligne 8 et me met : Impossible de convertir 'int' en 'const char *'
 
 :??:

n°1026973
matafan
Posté le 27-03-2005 à 23:17:10  profilanswer
 

C'est mal, je sais, mais j'ai que ça à faire :

Code :
  1. #include <ctype.h>
  2. #include <stdio.h>
  3. int
  4. main()
  5. {
  6.         char *p;
  7.         char str[1024];
  8.         /* Lit stdin par blocs, tant qu'il y a quelque chose a lire */
  9.         while (fgets(str, sizeof str, stdin)) {
  10.                 /* Passe chaque caractere lu en majuscule */
  11.                 for (p = str; *p != '\0'; p++) {
  12.                         *p = toupper(*p);
  13.                 }
  14.                 /* Affiche la chaine ainsi convertie */
  15.                 fputs(str, stdout);
  16.         }
  17.         return 0;
  18. }

n°1026976
jayibee
Posté le 27-03-2005 à 23:26:24  profilanswer
 

Merci ça marche, je vais essayer de le refaire en utilisant la syntaxe qu'on a l'habitude d'utiliser.


Message édité par jayibee le 27-03-2005 à 23:28:50
n°1026979
Emmanuel D​elahaye
C is a sharp tool
Posté le 27-03-2005 à 23:40:09  profilanswer
 

jayibee a écrit :

Merci ça marche, je vais essayer de le refaire en utilisant la syntaxe qu'on a l'habitude d'utiliser.


Cette 'syntaxe' dont tu parles ressemble fort à du (mauvais) C++.
 
Si c'est ça, balise [C++] dans le titre au lieu de [C]
 


---------------
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/
n°1027057
annadivx
Le jardin d'enfants il est ici
Posté le 28-03-2005 à 01:33:06  profilanswer
 

dark86 a écrit :

...
...mais c'est quand meme bizarre de vous enseigner le C++ sans les bases du C....


 
:lol: c'est pas vraiment nécessaire avec des support de cours corrects,
puisque C++ inclus parfaitement le C.
 
D'un point de vue linguistique, le 'C' reste comme le Cobol:
ça existera tant qu'il y aura encore des Mohicans pour le faire survivre.
(et Je sais que les librairies de base, sont futilement différentes, merci)
 
Longue vie aux Mohicans !
 
 
 
P.S.
Je suis parfois « le grain de sel de la vie »

n°1027122
cricri_
Posté le 28-03-2005 à 08:50:22  profilanswer
 

vi, mais il y a encore beaucoup de systèmes embarqués où l'on ne peut faire que du C .. ;)

n°1027128
Joel F
Real men use unique_ptr
Posté le 28-03-2005 à 09:59:01  profilanswer
 

Oui mais bon, apprendre le C++ sans voir le C ca se fait trés bien. Le C++ n'a AUCUN rapport avec le C a part des keywords/structures qui se ressemblent.  
 
Tu prends un novice en programmation, tu lui apprends l'algorithmie et le C++ DIRECTEMNT en utilsiant STL/BOOST , il est plus vite operationnel et fait moins de caca dans son code.
 
Par contre les profs débiles qui mélangent C,C++,truc spécifiques IDE moisis (vc < 7) etc ...
euh merite le pal !
 
 


Message édité par Joel F le 28-03-2005 à 09:59:42
n°1027145
dark86
Posté le 28-03-2005 à 10:47:36  profilanswer
 

jayibee a écrit :

ok, mon code devient :
 

Code :
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <ctype.h>
  4. void main()
  5. {char C;
  6. cin>>C;
  7. for(int i=0;i<strlen(C);i++)
  8.     {C[i]=toupper(C[i]);}
  9. cout<<C;
  10. }


 
Mais le compilateur me surligne la ligne 8 et me met : Impossible de convertir 'int' en 'const char *'
 
 :??:


 
c'est parceque C est un caractere (char) et non une chaine de carracteres (char* ou string) donc il faut lui donner ta chaine complette, mais comme MaChaine a été créée en C++, elle n'a pas forcément le bon type, donc on enregistre ta chaine (son adresse en fait) dans le bon type, à savoir un char* --> char* chaine=MaChaine

n°1027206
Emmanuel D​elahaye
C is a sharp tool
Posté le 28-03-2005 à 12:19:10  profilanswer
 

annadivx a écrit :

:lol: c'est pas vraiment nécessaire avec des support de cours corrects,
puisque C++ inclus parfaitement le C.


Non.
 
http://david.tribble.com/text/cdiffs.htm


---------------
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/
n°1027207
Emmanuel D​elahaye
C is a sharp tool
Posté le 28-03-2005 à 12:20:09  profilanswer
 

Joel F a écrit :

Par contre les profs débiles qui mélangent C,C++,truc spécifiques IDE moisis (vc < 7) etc ...
euh merite le pal !


Le miel et les fourmis rouges.


---------------
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/
n°1027250
annadivx
Le jardin d'enfants il est ici
Posté le 28-03-2005 à 13:15:37  profilanswer
 


 
Comme diraient certain(e)s de tes ami(e)s: ce ne sont que "des points de détails"...
(voyant que tu es passé du côté "obscure" de la force...)
 
Par contre, si tu avais suivi hônnetement tes cours de GL (Génie Logiciel),
tu saurais évaluer, au niveau des outils linguistiques qu'implémentent
ces deux langages (pris séparément) QUE, l'accessibilité aux objets manipulés
(soit les resources de la machine au sens physique) admettent une relation
assez simple à comprendre malgré ton age presque aussi mure que le miens:
 

Citation :

OLs(C) est inclus dans OLs(C++)
OLs(L) signifiant: " L'ensemble des outils linguistiques pour le langage (L) "
 
Les concepts ci-dessous sont des objets linguistiques:
- les structures de contrôles
- les scalaires
- les structures de données
- la généricité
- les classes
etc.


 
(et sachant que l'ensemble peut être "plus granulaire"
que ce que l'on perçoit de cette mince liste.)
 
Mais pour être plus précise sur le message que je livre:
 
Je maintient FERMEMENT que pour enseigner les outils linguistique qu'implémente le C++ et le C, Il n'est PAS nécessaire de commencer par le langage C. Le langage 'C' n'est encore valable aujourd'hui que dans la mesure où il existe encore des micro-systèmes qui évoluent plus vers des tâches de microtechniciens et microtechniciennes, que vers des tâches d'informaticiens et informaticiennes de haut niveau.
 
...dommage pour tes fourmis, je vois qu'elle ton déjà beaucoup rongé avec le temps ;)
...mais le miel je le garde volontier pour m'endormir le soir, avec ma Verveine.
 
merci.


Message édité par annadivx le 28-03-2005 à 17:42:48
n°1027263
Joel F
Real men use unique_ptr
Posté le 28-03-2005 à 13:27:38  profilanswer
 

Emmanuel Delahaye a écrit :

Le miel et les fourmis rouges.


Chacun son trip  :lol:

mood
Publicité
Posté le   profilanswer
 


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

  de minuscule à majuscule

 

Sujets relatifs
[resolu] Transformer un caractere majuscule en minuscule...processus, pipes, et chaîne en majuscule
Sous SQL 2000 Server : différence entre le majuscule et le minuscule?[srv MySQL 4.0.20d] pb de table et de majuscule
mettre un chaine en majusculestd::string et majuscule/minuscule
SQLServer et majuscule[JS H] forcer la premiere lettre en majuscule et le reste en minuscule
[JAVA] minuscule-------->majuscule 
Plus de sujets relatifs à : de minuscule à majuscule


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