遇到字符串处理的问题,得先想清楚处理步骤
让每一步的for循环
int i
的初始化值和限制条件都成为需要处理的数组下标(只用<=或者>=)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main() {
char str[100];
scanf("%s", &str);
int n;
scanf("%d", &n);
char temp[100];
int len = strlen(str);
int t = 0;
for (int i = len - n; i <= len - 1; i++) {
temp[t] = str[i];
t++;
}
for (int i = len-n-1; i>=0; i--) {
str[i + n] = str[i];
}
for (int i = 0; i <= n - 1; i++) {
str[i] = temp[i];
}
printf("%s", str);
return 0;
}
int len = strlen(str);
要移到最前方的数组下标,也就是【len-n,len-1】
要向右移动的数组下标(从倒数开始,避免数组越界),也即len-n-1->0
要将【len-n,len-1】拷贝过来的数组下标,为【0,n-1】
如此便非常明确了
Comments NOTHING