Итак, я делаю программу, в которой он позволяет вводить предложение, и программа подсчитывает, сколько слов есть в предложении. Кажется, я не могу заставить программу ввести строку. Нужно ли включать указатель в cin?C++ Homework - Подсчет слов
#include <cstring>
#include <string>
#include <iostream>
int stringsize(char*);
using namespace std;
int main()
{
char* cstring; //pointer
cout << " Please enter phrase to count number of words: ";
cin.get(cstring);
int numofwords;
numofwords = stringsize(cstring);
cout << numofwords << endl;
system("pause");
return 0;
}
int stringsize(char* cstr)
{
int pos,sizeofstr;
sizeofstr = 0;
string copy;
string cplusstr(cstr);
while ((pos = cplusstr.find(' ')) != -1)
{
pos = cplusstr.find(' ');
copy.assign(cplusstr,0,pos);
cplusstr.erase(0,pos+1);
copy.erase(0,pos);
sizeofstr = sizeofstr + 1;
}
int length = cplusstr.size();
char* cstring = new char[length + 1];
strcpy(cstring,cplusstr.c_str());
if(cstring != NULL) //no whitespace left but there is still a word
{
sizeofstr = sizeofstr + 1;
}
return sizeofstr;
}
Что вы подразумеваете под 'I can not, чтобы получить программу, чтобы я мог ввести строку.'? Что происходит, когда вы пытаетесь дать ему вход? –
Возможный дубликат функции [C++ для подсчета всех слов в строке] (http://stackoverflow.com/questions/3672234/c-function-to-count-all-the-words-in-a-string) –