/* 将字符串的前N个字符平移到字符串的后面,用string的特性实现 */ ![]() #include <iostream> #include <string> using namespace std; string func(string str, int N) { int len = str.length(); if (len==0 || N<=0) return str; if (N > len) N = N % len; string str1; string str2; str1.assign(str, 0, N); //将str中前N个字符拷贝到str1中 str2.assign(str, N, len-N); //将str从第N+1个字符开始的len-N个字符赋给当前字符串 str = str2 + str1; return str; } int main() { string str = "ABCDE" ; cout << func(str, 3) << endl; //输出:DEABC //这里的3是从1,2,3开始的,即这里的3即代表字符C,即把ABC右移 return 0; }
另一种方法: ![]() 字符串部分逆序
|
|
来自: 雪柳花明 > 《C 笔试 算法题准备》