题目:实现字符串循环左移、右移
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 20
void leftShiftString(char* str);
void rightShiftString(char* str);
int main() {
char input[MAX_LENGTH];
printf("请输入一串字符串: ");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = 0;
printf("\n字符串左移结果:\n");
leftShiftString(input);
printf("\n字符串右移结果:\n");
rightShiftString(input);
return 0;
}
void leftShiftString(char* str) {
int len = strlen(str);
if (len == 0) return;
char temp;
for (int i = 0; i < len; i++) {
temp = str[0];
for (int j = 0; j < len - 1; j++) {
str[j] = str[j + 1];
}
str[len - 1] = temp;
printf("左移第%d次后的结果:%s\n", i + 1, str);
}
}
void rightShiftString(char* str) {
int len = strlen(str);
if (len == 0) return;
char temp;
for (int i = 0; i < len; i++) {
temp = str[len - 1];
for (int j = len - 1; j > 0; j--) {
str[j] = str[j - 1];
}
str[0] = temp;
printf("右移第%d次后的结果:%s\n", i + 1, str);
}
}