10
votes

Vérifiez si string.at (i) est un espace C ++

Je veux vérifier si un Char ( string.at (i) ) est blancheur en C ++. Comment puis-je faire cela facilement?

J'ai obtenu cet exemple de code, et je pensais à changer le _____ avec quelque chose, mais je ne sais pas quoi. J'ai essayé avec '' , mais cela n'a pas fonctionné. xxx


4 commentaires

string [i] == '' devrait fonctionner, si vous voulez une vérification très simple.


Il n'y a aucune raison d'utiliser à ici, car vous savez que l'index est valide.


@muntoo: Blank n'est pas le seul caractère d'espace blanc.


Droit. Il y a aussi \ t , \ r et \ n , et peut-être quelques autres caractères de contrôle.


3 Réponses :


14
votes
#include <cctype>

if (isspace(string.at(i)))

0 commentaires

3
votes

Les programmeurs CSPENDANT C Migration de C ++ utiliseraient semi-automatiquement:

#include <cctype>

if (std::isspace(string.at(i)))
    ...


0 commentaires

6
votes

au lieu de == code> [quelque chose], vous voulez: if (isspace (string.at (i)) code> (ou vous préférez peut-être utiliser std :: Isspace code>).

Edit: Je devrais ajouter que cela dépend de ce que vous êtes faire em> avec les caractères spatiaux (ou ce que vous allez avec tout le reste, selon) peut vouloir utiliser un algorithme. Par exemple, par exemple, si vous souhaitez créer une copie de votre chaîne avec tous les caractères blancheurs supprimés, vous pouvez utiliser: p>

std::remove_copy_if(s.begin(), s.end(), std::back_inserter(new_string), isspace);


0 commentaires