用c语言:利用指针实现由键盘任意输入一串字符,将此字符串在原数组中倒置。如原字符串为: abcdefg,变换后为gfedcba。不能用字符串函数,遍历使用指针
时间: 2023-06-20 15:03:38 浏览: 181
C语言用指针将字符串数组位置颠倒
下面是用 C 语言编写的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXLEN 100
void reverse(char *str) {
char *start = str;
char *end = str;
while (*end != '\0') {
end++;
}
end--;
while (start < end) {
char temp = *start;
*start++ = *end;
*end-- = temp;
}
}
int main() {
char str[MAXLEN];
printf("请输入字符串:");
scanf("%s", str);
reverse(str);
printf("变换后的字符串为:%s\n", str);
return 0;
}
```
在这个程序中,我们定义了一个 `reverse` 函数,用于将字符串倒置。这个函数接收一个指向字符串的指针,然后使用两个指针 `start` 和 `end` 分别指向字符串的开头和结尾。然后,我们使用一个循环来交换 `start` 和 `end` 指向的字符,直到它们相遇为止。
在主函数中,我们首先定义一个字符数组 `str`,用于存储从键盘输入的字符串。然后,我们调用 `reverse` 函数,将字符串倒置。最后,我们打印出变换后的字符串。
需要注意的是,我们在使用 `scanf` 函数读取字符串时,应该使用 `%s` 格式化字符串,而不是 `%c`。`%s` 可以一次读取整个字符串,而 `%c` 只能读取单个字符。
阅读全文