考查点:
1、带空格字符串的输入
cin.get(str,len);//这里注意如果输入多个字符串或者字符数组,如果代码为:cin.get(s1,len1); cin.get(s2,len2);可能导致s2无法输入,因为cin.get保留换行,所以要在两个输入之间加入一个cin.get();
cin.getline(str,len);
getline(cin,str);
2、旋转字符串(三种方法)
如下链接:
反转字符串(三种解法)——leetcode_笔记-CSDN博客_反转字符串
这里采用第三种。
#include<iostream>
#include<string>
using namespace std;
string reverseS(string s, int a, int b);
int main()
{
string s;
getline(cin, s);
int n = s.size();
for (int i = 1; i <= n; i++)
{
if (n % i == 0)
{
s=reverseS(s, 0, i-1);
}
}
cout << s;
return 0;
}
string reverseS(string s, int a, int b)
{
if (a >= b)
{
return s;
}
char temp = s[a];
s[a] = s[b];
s[b] = temp;
return reverseS(s, ++a, --b);
}
【仅为个人见解,非标准解答!】