字符串循环移位,要考虑移位的位数是否超过了字符串的长度。
代码:
//循环左移n位 void loopmove1(char* str,int n) { if(NULL == str) return; int len = strlen(str); int num = n % len; for(int i = 0;i < num;i++){//循环移动num次 char temp = str[0]; for(int j = 0;j < len - 1;j++){ str[j] = str[j+1]; } str[len-1] = temp; } } void loopmove2(char* str,int n) { if(NULL == str) return; int len = strlen(str); int num = n%len; int temp[max]; strncmp(temp,str,num);//将str的前n个字符放到temp中 strcat(tempstr+num);//将str中后面的字符接到temp后 *(temp+strlen(str)) = ' '; strcpy(str,temp); }