我有一个字符串“子弹武器对盔甲的伤害较小。” 并且有条件这个字符串必须根据参数 int width=20 以不同的方式分成几部分。
1.wraps 给定特定宽度的文本。
“子弹武器对装甲的伤害较小。” 变成
"Bullet weapons do le"
"ss damage against ar"
"mor."
包装给定特定宽度的文本,但除非绝对必要,否则不会拆分单词。
“子弹武器对装甲的伤害较小。” 变成
“子弹武器对”“盔甲”造成的伤害较小。
3.给定宽度的文本,除非绝对必要,否则不会拆分单词。换行时,此函数将尝试使线条在宽度方面尽可能均匀。
"Bullet weapons do less damage against armor." becomes
"Bullet weapons "
"do less damage "
"against armor."
对于案例1:我写的逻辑如下:
int len=text.length(); where text is string text= "Bullet weapons do less damage against armor."
int last=0,first=0;
vector<string> output;
int max=ceil((double)len/width);
cout<<max<<endl;
for(int i=0;i<max;i++)
{
first=width*i;
if(len<(width+(width*i)))
{
last=len;
}
else
{
last=width+(width*i);
}
string s(text,first,last);
output.push_back(s);
}
但它给我的结果是:
子弹武器对盔甲的伤害较小。铁道部 在第二行中,它应该达到“ ss 对 ar 的伤害”,其中逻辑错误;
情况(2)和(3)怎么样。
请帮帮我
谢谢