C++随机句子生成器句尾添加句号功能实现问题咨询
问题原因
你当前的代码每次拼接完单词都会额外追加一个空格,最终生成的sentence末尾会多出一个多余的空格,直接追加句号会出现「句尾空格+句号」的错误格式,不需要使用if或者while语句就能解决这个问题。
解决方案
在首字母大写逻辑后,先删除末尾的多余空格,再追加句号即可,修改对应代码段如下:
sentence[0] = toupper(sentence[0]); // 删除末尾多余的空格 sentence.pop_back(); // 追加句尾句号 sentence += '.'; cout << sentence << endl;
如果使用的是不支持C++11的老版本编译器,可以把sentence.pop_back()替换为sentence.erase(sentence.length() - 1);,效果完全一致。
额外提示
你定义的介词数组preposition首个元素为the,属于冠词不属于介词,可能会导致生成的句子存在语法错误,可根据实际需求调整。
内容的提问来源于stack exchange,提问作者Jose Villegas
相关产品推荐
相关产品推荐

