请按给定的函数原型编程实现将字符数组中的字符串的第m个字符开始的n个字符逆序存放。要求在主函数读入字符串,且逆序存放后的字符串也在主函数打印。函数原型: void inverse(char str[],int m,int n); 输入要求: 输入的一行字符串,应包含字母,数字以及空格字符 友情提示: 在执行输入字符串的函数之前,请用getchar();把输入缓冲区中的换行符读出!!! ****输入提示信息和格式要求为: "input m,n:" "%d,%d" "input the string:" ****输出格式为:"the inverse string:%s"
时间: 2024-02-28 12:57:45 浏览: 60
下面是实现该功能的代码:
```c
#include <stdio.h>
#include <string.h>
void inverse(char str[], int m, int n);
int main()
{
int m, n;
char str[100];
printf("input m,n:");
scanf("%d,%d", &m, &n);
getchar(); // 读取缓冲区中的换行符
printf("input the string:");
fgets(str, 100, stdin);
str[strlen(str) - 1] = '\0'; // 去掉输入字符串的换行符
inverse(str, m, n);
printf("the inverse string:%s\n", str);
return 0;
}
void inverse(char str[], int m, int n)
{
int len = strlen(str);
// 将第m个字符开始的n个字符逆序
for (int i = m - 1, j = m + n - 2; i < j; i++, j--)
{
char tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
}
```
运行结果示例:
```
input m,n:3,4
input the string:hello world
the inverse string:helrodlo wold
```
阅读全文