用c语言编写出实现一个函数,实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB
时间: 2024-04-07 07:30:03 浏览: 64
好的,我可以帮你编写一个用 C 语言实现左旋字符串的函数。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
void leftRotateString(char* str, int k) {
int len = strlen(str);
k = k % len; // 如果 k 大于字符串长度,取余数防止越界访问
// 将前 k 个字符依次移到字符串末尾
for (int i = 0; i < k; i++) {
char temp = str[0];
for (int j = 0; j < len - 1; j++) {
str[j] = str[j + 1];
}
str[len - 1] = temp;
}
}
int main() {
char str[] = "ABCD";
int k = 2;
printf("原始字符串:%s\n", str);
leftRotateString(str, k);
printf("左旋 %d 个字符后的字符串:%s\n", k, str);
return 0;
}
```
运行结果:
```
原始字符串:ABCD
左旋 2 个字符后的字符串:CDAB
```
这个函数接受一个字符串和一个整数 k,将字符串中的前 k 个字符依次移到字符串末尾,实现了左旋操作。注意,如果 k 大于字符串长度,我们使用取余数的方式避免越界访问。
阅读全文