Code:
#include<iostream>
#include<string>
using std::cout;
using std::cin;
using std::endl;
using std::string;
int main(){
string text; //the string to be sorted
const string separators = " ,.\"\n"; //word delimiters
//three lines deleteede that allocated the array
//read the string to be searched from the keyboard
cout<<endl<<"Enter a string terminated by #:"<<endl;
std::getline(cin,text,'#'); //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//cout the words in the text
size_t start = text.find_first_not_of(separators); //word start index
size_t end = 0; //end start index
int word_count = 0; //count of words stored
while(strat !=string::npos){ //deledted the check in the size of the array
end = text.find_first_of(separators, start + 1);
if(end == string::npos){ //found a separator?
end = text.length(); //no, so set to last + 1
word_count ++; //increment count
//find the first charater of the next word
start = text.find_first_not_of(separators, end + 1);
}
}
}
1、std::getline(cin,text,'#');
2、size_t start = text.find_first_not_of(separators); //word start index
3、end == string::npos
4、 end = text.length(); //与text::length();区别: