c语言-字符串循环左移
编程要求
字符串的循环左移,指的是将字符串整体向左移动,左部超出范围的字符回到右边,比如对于字符串123,它循环左移1位的结果是231。
在右侧编辑器中有一个函数Shift,它有两个参数str和n,str存有一个字符串,n为要左移的距离,为非负数。
请在这个函数中,将str循环左移n位,然后输出,占一行。
输入数据由评测系统读取,并传递给Shift函数。具体见测试说明。
测试说明
测试输入:123 1 预期输出:231
测试输入:abc 0 预期输出:abc
每组输入一行,有两个数据,分别对应str和n。
方法一:
#include
#include
using namespace std;
/********** Begin **********/
void Shift(char *str,int n)
{int len=0,i;// char *p=str;// while(*p!='\0'){// len++;// p++;// } //求字符串长度len=strlen(str);n%=len;// printf("n=%d,len=%d",n,len);while(n--){char tmp = str[0]; for (int i=0; i
方法二:
#include #include using namespace std;/********** Begin **********/void rev(char *start,char *end){while(start < end){char t = *start;*start = *end;*end = t;start++;end--;}}void Shift(char *str,int n){int len = strlen(str);n = n % len;rev(str,str + n - 1);rev(str + n, str + len - 1);rev(str,str + len - 1);cout << str << endl;}/********** End **********/
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
