【问题描述】 字符串左旋转操作是把字符串前面的若干字符移到字符串的尾部。输入一个字符串S(长度<100),并输入向左旋的位数K(k的取值:[0,len(S)]),使字符串向左旋K位。 【输入形式】 字符串S和位数K 【输出形式】 左旋后的字符串用C语言
时间: 2024-03-23 16:41:40 浏览: 23
以下是基于C语言的程序实现,可以实现字符串向左旋转K位的操作。
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int k;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入左旋的位数K:");
scanf("%d", &k);
int len = strlen(str);
char temp[100];
strncpy(temp, str + k, len - k);
strncpy(temp + len - k, str, k);
temp[len] = '\0';
printf("左旋后的字符串为:%s\n", temp);
return 0;
}
```
程序中使用字符数组 `str` 存储输入的字符串,使用整数 `k` 存储左旋的位数。程序使用函数 `strlen` 获取字符串的长度,并使用字符数组 `temp` 存储左旋后的字符串。使用函数 `strncpy` 将字符串 `str` 中前面的部分移动到字符数组 `temp` 的后面,将字符串 `str` 中后面的部分移动到字符数组 `temp` 的前面,并在字符数组 `temp` 的末尾添加一个空字符 `\0`。
需要注意的是,由于在字符数组 `temp` 中存储的字符串长度为原字符串长度加一,所以在使用函数 `strncpy` 进行字符串拼接时需要将目标字符串的长度设为原字符串长度。