我在字符串类型的方法中有以下代码,它从文件中读取单词,从单词的开头删除所有非字母字符(如下所示)并在这样做之后返回它们。在 main 方法中打印出结果后,我注意到即使它应该从头开始删除所有非字母字符,它仍然总是打印出 1,例如:列表包含单词:
那里,——曾经是一只可爱的——;小兔子,他被枪杀了,故事结束
应用该函数后,输出为:
曾经有一只可爱的小兔子,他被枪杀了,故事结束
inFile >> word;
for(int i=0; i<word.size(); i++){
if(word[i] >= 'A' && word[i] <= 'Z' || word[i] >= 'a' && word[i] <= 'z') break;
else word.erase(i,1);
}
return word;
如果有人能告诉我到底是什么我没有看到,我将不胜感激。我已经尝试了所有不同的函数,例如Erase()、isalpha()等。它们在不应该产生相同的结果时都会产生相同的结果。我在做什么禁止删除最后一个非字母字符(在单词的开头)?我尝试了同样的方法来删除单词末尾的所有标点符号,但它会删除除一个之外的所有标点符号(再次)。
谢谢你的时间