Comment vérifier si une CString contenant uniquement des caractères numériques
Je suis en train de lire à partir d'un fichier et l'analyse de son contenu. J'ai besoin de faire en sorte qu'un CString
valeur se composer uniquement de chiffres. Quelles sont les différentes méthodes que je pouvais l'atteindre?
Exemple de code:
Cstring Validate(CString str)
{
if(/*condition to check whether its all numeric data in the string*/)
{
return " string only numeric characters";
}
else
{
return "string contains non numeric characters";
}
}
Ne vous vous souciez d'autres langues?
OriginalL'auteur Rohit Vipin Mathews | 2012-10-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez itérer sur tous les personnages et de vérifier avec la fonction
isdigit
si le caractère est numérique.Une autre solution qui n'utilise pas
isdigit
mais seulement CString fonctions de membre utiliseSpanIncluding
:CString
fonction? N'est-il pas style C++ pour utiliser l'appel isdigit?Je ne sais pas d'une
CString
méthode qui vérifie si l'ensemble de la chaîne ou de parties sont numériques.isdigit
est même une fonction C, mais il est normalisé et vous n'aurez pas de problèmes pour l'utiliser:)J'ai trouvé un moyen en utilisant uniquement CString fonctions de membre. Voir modifier
isdigit
suppose l'entrée des caractères sont des octets dans la page de codes locale, (ou parfois il suppose ASCII), etCString
tient normalement UTF-16.Serait-il un peu plus efficace pour comparer la longueur de la SpanIncluding résultat avec la longueur de la chaîne au lieu de faire une comparaison de chaîne? La chaîne de comparer finit par comparaison de chaque personnage s'ils sont identiques à cordes.
OriginalL'auteur halex
vous pouvez utiliser CString::Trouver,
Exemple
Voir ici Dans MSDN
OriginalL'auteur vikky