「弾丸武器は鎧に対してダメージが少ない」という文字列があります。この文字列は、さまざまな方法でパラメーター int width=20 に基づいて部分に分割する必要があるという条件があります。
1.特定の幅でテキストをラップします。
「弾丸武器は防具に対してダメージが少なくなります。」になる
"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);
}
しかし、それは私に結果を与えています:
弾丸武器は防具に対してダメージを与えません。モル。2行目では、「arに対するssダメージ」までのはずですが、論理的に間違っています。
(2)と(3)の場合はどうでしょうか。
私を助けてください
ありがとう