c语言将用户输入的字符串中从第 i 个到第 j 个之间的字符逆序颠倒。
时间: 2023-12-03 20:44:49 浏览: 109
可以使用指针来实现字符串的逆序颠倒。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str, int i, int j) {
if (i >= j || j >= strlen(str)) {
// 不需要颠倒或下标越界,直接返回
return;
}
char *p = str + i; // 指向第 i 个字符
char *q = str + j; // 指向第 j 个字符
while (p < q) {
// 交换 p 和 q 指向的字符
char temp = *p;
*p = *q;
*q = temp;
// 移动 p 和 q 的指针
p++;
q--;
}
}
int main() {
char str[100];
int i, j;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入要颠倒的区间 [i, j],i 和 j 用空格隔开:");
scanf("%d%d", &i, &j);
reverse(str, i, j);
printf("颠倒后的字符串为:%s\n", str);
return 0;
}
```
在这个示例代码中,我们使用 `reverse` 函数来实现字符串的逆序颠倒操作。该函数接受三个参数,分别是要操作的字符串、要颠倒的区间起始下标和要颠倒的区间终止下标。
在函数中,我们首先判断是否需要颠倒或下标是否越界。如果不需要颠倒或下标越界,直接返回即可。
接着,我们使用两个指针 `p` 和 `q` 分别指向要颠倒的区间的第一个字符和最后一个字符。然后,我们使用 `while` 循环,不断交换 `p` 和 `q` 指向的字符,并移动指针,直到 `p` 和 `q` 相遇。
最后,我们在 `main` 函数中读入一个字符串和颠倒区间的下标,并调用 `reverse` 函数来颠倒指定区间的字符。最后,输出颠倒后的字符串。
阅读全文