我试图构建一个函数,它会经过一段时间或for循环,并找到空间的位置输出空间前的所有内容,然后在包含空间的空间之前擦除所有内容,然后再次重复此操作。如何在while或for循环中使用.find(),并且每次都没有给出相同的发现值
任何帮助,非常感谢。
int sentence()
{
string enteredSentence="";
getline(cin,enteredSentence);
string sentenceString(enteredSentence);
int sentenceLength=enteredSentence.size();
cout<<"size of sentence"<<sentenceLength<<endl;
int stringSize=sentenceString.size();
while(stringSize>0)
{
int spaceLoc = enteredSentence.find(" ");
cout<<spaceLoc;
cout<<sentenceString.substr(0,spaceLoc)<<endl;
sentenceString.substr(0,spaceLoc);
cout<<"string before string eraced"<<sentenceString<<endl;
sentenceString.erase (0,spaceLoc);
cout<<"string after string eraced"<<sentenceString<<endl;
stringSize=sentenceString.size();
cout<<"string size is"<<stringSize<<endl;
}
具体是什么问题? – Ediac
问题是当“enteredSentence.find(”“);”运行时它会在查找空间时返回相同的值。可以的,find()只能找到一次。我如何每次发出准确的数字。第一个数字是准确的,不过数字后是相同 – ike
这里输出注意到它的一个3每次 – ike