请用c语言实现,请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。
时间: 2024-02-03 08:13:34 浏览: 63
C语言程序设计-编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1+13+15+17+…+1(2m+1)
5星 · 资源好评率100%
以下是用 C 语言实现的函数 `fun`:
```c
#include <string.h>
void fun(char *str, int m) {
int len = strlen(str);
if (m >= len || m <= 0) return; // 不需要移动或者无效的输入
char temp[m]; // 存储前 m 个字符
memcpy(temp, str, m);
memmove(str, str + m, len - m); // 把第 m+1 到最后的字符移到字符串的前部
memcpy(str + len - m, temp, m); // 把前 m 个字符移到字符串的最后
}
```
这个函数接受两个参数,一个是指向字符串的指针 `str`,另一个是整数 `m`。函数会把字符串中前 `m` 个字符平移到字符串的最后,并把第 `m+1` 到最后的字符移到字符串的前部。如果 `m` 大于等于字符串长度或者小于等于 0,则不需要移动,函数直接返回。
函数内部使用了 C 语言标准库中的 `strlen`、`memcpy` 和 `memmove` 函数。其中,`strlen` 返回字符串的长度,`memcpy` 可以把一个内存块中的内容复制到另一个内存块中,`memmove` 则和 `memcpy` 类似,但是它可以处理重叠的内存块。
阅读全文