输入字符串str1(字符串长度>10)和数字n,如果n小于字符串长度,将字符串前n个字符前后顺序反转存储在字符串str2中,并输出(不要求输入中文,比较难),否则输出“输入数字大于字符串长度,不能逆序操作”。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string str1,str2;
int n;
cin >> str1;
cin >> n;
if(n>str1.size())
{
cout << "输入数字大于字符串长度,不能逆序操作";
return 1;
}
str2=str1.substr(0,n);
reverse(str2.begin(),str2.end());
cout << str2;
return 0;
}
字符串一般赋值后会自动在结尾加一个'\0',所以你进行字符串操作时会发现长度比实际+1.
因此用char定义的时候就要多一位