Je voudrais savoir comment vérifier si la chaîne d'entrée contient une combinaison de lettres majuscules et minuscules. Ensuite, affichez une déclaration pour montrer que la chaîne d'entrée contient une combinaison de lettres majuscules et minuscules.
Réponses
Trop de publicités?
Ulquiorra
Points
176
Vous pouvez facilement le faire en utilisant la valeur ASCII.
Voici 2 algorithmes que vous pouvez coder:
1. Initialiser deux variables lowerCase comme false et upperCase comme false.
2. Sélectionnez chaque caractère de la chaîne d'entrée.
2.a. Obtenir la valeur ascii pour ce caractère
2.b. Si elle est supérieure ou égale à 97 alors définir lowercase sur true. sinon définir uppercase sur true.
3. Si le résultat final contient à la fois upperCase et lowerCase sur true alors il contient une combinaison de majuscules et de minuscules.
L'autre moyen beaucoup plus simple est.
1. convertir la chaîne donnée en minuscules.
2. vérifier si elle est égale à la chaîne d'origine, si c'est le cas alors c'est en minuscules et retourner.
3. Convertir la chaîne d'origine en majuscules et comparer à nouveau avec la chaîne d'origine
4. Si elles sont égales alors la chaîne est en majuscules sinon c'est une combinaison de majuscules et de minuscules.
Connor Hollis
Points
862
Vous pouvez comparer les codes de caractères en ASCII les uns aux autres pour vérifier si votre valeur est dans une plage ou non.
Ce code fonctionne si vous ne savez pas que la chaîne ne contiendra que des lettres. Vous pouvez supprimer certaines vérifications si vous savez qu'il ne contiendra que des lettres.
int checkLowerAndUpper( char * string ) /* passez un pointeur de caractère null-terminé */
{
int i; /* variable de boucle */
int length = strlen(string); /* Longueur */
int foundLower = 0; /* entiers "booléens" */
int foundUpper = 0;
for( i = 0; i < length; ++i ) /* Boucler sur toute la chaîne */
{
if( string[i] >= 'a' && string[i] <= 'z' ) /* Vérifier en minuscules */
foundLower = 1;
else if( string[i] >= 'A' && string[i] <= 'Z' ) /* Comparer en majuscules */
foundUpper = 1;
if( foundLower && foundUpper )
return 1; /* Il y a des caractères en plusieurs cas dans cette chaîne */
}
return 0; /* Toutes les lettres sont d'un seul cas */
}
- Réponses précédentes
- Plus de réponses