C语言,利用指针编写程序:把从键盘输入的字符串逆序存放并输出

2024-11-24 09:56:24
推荐回答(2个)
回答1:

以下是C语言程序,使用指针将键盘输入的字符串逆序存放,并输出结果:

```c
#include
#include

int main() {
char str[100], temp;
int len, i;
char *p1, *p2;

printf("请输入一个字符串:");
scanf("%s", str);

len = strlen(str);
p1 = str;
p2 = str + len - 1; // 指向字符串最后一个字符

for (i = 0; i < len/2; i++) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}

printf("逆序存放后的字符串为:%s", str);

return 0;
}
```

程序先从键盘输入一个字符串,然后获取字符串的长度和指向字符串首尾的指针。接着,使用指针交换相应位置上的字符,完成字符串逆序存放。最后输出逆序存放后的字符串。

注意,字符串的长度可能为奇数或偶数,因此在for循环中应该只交换字符串长度除以2个字符即可。

回答2:

#include
#include
void reverse(char* str)
{
char* p = str + strlen(str)-1;
char temp;
while(str temp=*p, *p--=*str, *str++=temp;
}
void main()
{
char str[1000];
gets(str);
reverse(str);
printf("%s\n", str);
}