isspace()
-
hallo...
warum funktioniert folgends programm nicht wie gewünscht?
#include <iostream> #include <cctype> unsigned int wordcount(const std::string& s) unsigned int n = 0; std::string::iterator b = s.begin(); std::string::iterator e = s.end(); for (; b != e; b++) { if (std::isspace(*b)) n++; } return n; } int main() { std::string s; std::cout << "Text eingeben:"; std::cin >> s; std::cout << std::endl << wordcount(s); return 0; }
vielen dank für eure hilfe!
-
warum funktioniert folgends programm nicht wie gewünscht?
ka, was funktioniert denn nicht? Sorry, aber ich hab keine lust zu raten, was dein programm machen soll, also werd präziser
-
entschuldige...
also das programm soll mit hilfe der iswhitespace() funktion die anzahl woerter in einem string bestimmen..
in dieser test-version wird der string über cin eingelesen,
an die funktion wordcount übergeben.ein iterator geht über den string und zählt die anzahl whitespces
(diese werden in der variable n aufsummiert, und diese variable
wird anschliessend an main zurückgegeben und ausgegeben.)das prgoramm funktioniert insofern nicht, dass immer 0 ausgegenben wird.
das problem schein in dieser zeile zu liegen:if (std::isspace(*b))
ich hoffe nun ist das ganze etwas klarer.
danke
-
std::cin >> s;
darin liegts, cin liest nur bis zum ersten " ", benutze getline