Quelle est la fonction qui me permet de savoir si les caractères

Résolu/Fermé
koukikouki Messages postés 9 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013 - 24 sept. 2013 à 10:11
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 - 24 sept. 2013 à 11:53
Bonjour,

quelle est la fonction qui me permet de savoir si les caractères de ma chaine de caractère sont en majuscule et celle qui me permet de savoir s ils sont en minuscule?
pouvez vous me donner un exemple.

Merci d avance
A voir également:

4 réponses

[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 24/09/2013 à 10:38
Bonjour koukikouki,

isupper
, définie dans
ctype.h
, permet de tester si un caractère est une lettre majuscule ou pas.

http://www.cplusplus.com/reference/cctype/isupper/

Tu as un exemple dans cette documentation.

En voilà un très simple :

#include <stdio.h>
#include <ctype.h>

int main(void)
{
char c = 'A';

if (isupper(c))
{
printf("The character %c is uppercase\n", c);
} else
{
printf("The character %c is lowercase\n", c);
}

return 0;
}

Avec cette fonction standard, écrire une fonction qui vérifie si tous les caractères d'une chaîne sont en majuscules est trivial.


Dal
0
koukikouki Messages postés 9 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013 2
24 sept. 2013 à 10:38
merciiii infiniment
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
Modifié par juliencolin54 le 24/09/2013 à 11:55
Bonjour,

Après ça ne te coutes rien de la faire toi même, ça prend 15 secondes, tu es sûr du fonctionnement, des caractères pris en compte et tu peux en rajouter...
int my_isupper(char c)
{
return (c >= 'A' && c <= 'Z');
}

Cdlt,

EDIT : souligné
Software is like sex, it's better when it's free - Linus Torvald
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 24/09/2013 à 11:44
Salut Julien,

Ta proposition ne teste que les majuscules ASCII, et cela retournera un résultat éventuellement faux si une locale différente de la locale par défaut "C" est active.

http://www.cplusplus.com/reference/cctype/isupper/
http://www.cplusplus.com/reference/clocale/setlocale/

isupper renvoie un résultat en fonction de la locale active, c'est un des intérêts de son usage.

De plus, je pense que dans dont code, cela devrait être supérieur ou égal et inférieur ou égal, sinon, les lettres A et Z ne sont jamais prises en compte.


Dal
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
24 sept. 2013 à 11:53
En effet merci, c'est plutôt inférieur ou égal.
Oui, je n'ai testé que les majuscules ASCII puisque comme je l'ai mentionné :
"tu es sûr (...) des caractères pris en compte et tu peux en rajouter... "
0
koukikouki Messages postés 9 Date d'inscription lundi 9 septembre 2013 Statut Membre Dernière intervention 9 décembre 2013 2
24 sept. 2013 à 11:01
merci Julien
0