Comment voir si un char est égale à une nouvelle ligne
J'ai une chaîne, la chaîne contient par exemple "Bonjour\nc'est un essai.\n".
Je veux diviser l'ensemble de la chaîne sur tous les \n dans la chaîne. J'ai fait ce code déjà:
vector<string> inData = "Hello\nThis is a test.\n";
for ( int i = 0; i < (int)inData.length(); i++ )
{
if(inData.at(i) == "\n")
{
}
}
Mais quand je complite cela, alors j'obtiens une erreur:
(\n comme un string)
binary '==' : no operator found which takes a left-hand operand of type 'char' (or there is no acceptable conversion)
(code ci-dessus)
'==' : no conversion from 'const char *' to 'int'
'==' : 'int' differs in levels of indirection from 'const char [2]'
Le problème est que je ne peux pas voir si un char est égal à "nouvelle ligne". Comment puis-je faire cela?
Êtes-vous sûr que vous avez voulu dire que pour être un
vector<string>
?OriginalL'auteur Laurence | 2012-02-14
Vous devez vous connecter pour publier un commentaire.
"\n"
est unconst char[2]
. Utilisation'\n'
à la place.Et en fait, votre code ne sera pas encore d'établir de toute façon.
Vous probablement dire:
J'ai enlevé le
vector
à partir de votre code, car apparemment vous ne voulez pas l'utiliser (que vous essayez d'initialiser unvector<string>
à partir d'unconst char[]
, qui ne fonctionnera pas).Également remarquer que l'utilisation de
size_t
au lieu de la conversion deinData.length()
àint
."\n"
est certainement pas unchar const*
; c'est unchar const[2]
.Vous avez absolument raison.
OriginalL'auteur netcoder
Vous pouvez essayer == '\n' à la place de "\n".
OriginalL'auteur David
votre expression de test est également faux, Que devrait être
vous devez créer une fonction qui prend une chaîne de caractères , et de retour vecteur de chaîne de caractères contenant craché lignes je pense
J'ai juste donné de lui l'idée de ce qui est mal , c'est sur lui ce qu'il fait ou pas.
OriginalL'auteur Mr.Anubis