题目描述
在C++中往往用string类代替字符数组char s[],使用更加方便
参考代码如下:
#include
#include
using namespace std;
int main()
{ string s; //定义一个字符数组,无需预先知道数组长度
cin>>s; //从键盘输入一行字符串,根据输入内容会自动确定数组长度
int len=s.length(); //获得字符串长度
cout<
cout<
cout<
cout<
return 0;
}
要求编写使用string完成一些字符串处理
输入
第1行输入t(大于1)表示有t个字符串
接着输入t行,每行输入一个字符串(不会包含空格)
输出
输出两行,一行输出最短字符串的前半段,一行输出最长字符串的后半段
无需考虑字符串长度相同的情况
字符串长度一半是向上取整
输入样例1
3
aabbccdd
123
a1b2c3
输出样例1
12
ccdd
#include
#include
using namespace std;
int main()
{
int t;
cin >> t;
string arr[t];
for (int i = 0; i < t; i++)
{
cin >> arr[i];
}
string strmax = arr[0]; //将数组的0号位定义为str长度最长的字符串,依次比较
int max = strmax.length();
for (int i = 1; i < t; i++)
{
if (arr[i].length() > max)
{ //如果某个字符串的长度比它大
max = arr[i].length();
strmax = arr[i];
}
}
string strmin = arr[0];
int min = strmin.length();
for (int i = 1; i < t; i++)
{
if (arr[i].length() < min)
{
min = arr[i].length();
strmin = arr[i];
}
}
cout << strmin.substr(0, min / 2 + 1) << endl;
cout << strmax.substr(max / 2, max - 1) << endl;
return 0;
}
评论列表(0条)