C++环境
string类型的字符串,前后补充指定数量空格。
比如输入参数为"abc",5,3
期待输出的string为" abc "
怎么理解?为何5,3就是前后各一个空格?如果6,3,怎么办?规则要说清楚
这样行不?
#include <iostream>
using namespace std;
#include <string>
int main ()
{
int n = 5;
string s1;
string s2 = "abc";
int m = s1.length();
int k = (n-m)/2;
int p = n-m-k;
for(int i=0;i<k;i++)
s1 += " ";
s1 += s2;
for(int i=0;i<p;i++)
s1 += " ";
cout<<s1;
return 0 ;
}
是要前面加5个空格,后面加3个空格吧
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <iostream>
using namespace std;
#include <string>
int main ()
{
string s = "abc";
int a = 5;
int b = 3;
for(int i=0;i<a;i++)
s = " "+s;
for(int i=0;i<b;i++)
s = s+" ";
cout<<"["<<s<<"]";
return 0 ;
}
在str前面加5个空格,后面加3个空格?,代码如下:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int a,b;
cin >> str >> a >> b;
int i = 0;
while(i++ < a)
cout << " ";
cout << str;
i=0;
while(i++<b)
cout << " ";
cout << endl;
return 0;
}
string add_spc_lr(char *str,int l,int r) {
assert(str);
assert(l>=0);
assert(r>=0);
string r=string(str);
for (int i=0;i<l) r=string(" ")+r;
for (int i=0;i<r) r=r+string(" ");
return r;
}