【发布时间】:2016-02-21 20:04:02
【问题描述】:
我输入了一个 C++ 字符串,如果我的字符串的大小大于 64 个字符,我需要将其切割成更小的字符串(存储到字符串向量中),但我需要确保不要切割单词;所以当我找到空格时我需要拆分;我写了一个代码,但我不确定这是解决问题的最佳方法。 任何帮助将不胜感激,谢谢;这是我写的代码。
void Truncate_string(string& S; vector<string>& T){
int index;
while(S.size()>64 && !S.empty()){
index=63; // The index where the cut would be made
while(index>0 && S.at(index)!=' ') --index;
if(index==0) index=63; // no space found
T.push_back(S.substring(0,index));
S=S.substring(index);
}
}
【问题讨论】:
-
连续非空格字符超过64个会怎样?
-
“但我不确定这是解决问题的最佳方法” 您的代码根本没有解决问题。
-
-if(index==0) 的目的是 64 个连续的非空格字符 - 我忘了声明 index 是一个 int - πάντα ῥεῖ 你能解释一下我的错误吗?
-
您不需要
S.at(index),因为您已明确检查index是否在界限内。只需使用S[index]。