gpt4 book ai didi

c - 使用指针反转字符串

转载 作者:行者123 更新时间:2023-11-30 20:25:33 25 4
gpt4 key购买 nike

问题 - 要使用指针反转字符串,但我的代码不是打印反转的字符串,而是打印字符串的第一个字母。

#include<stdio.h>

int main()
{
int i;
char n[100];
char *ptr;
ptr = n;
char a[100];
char *sptr;
sptr = a;
scanf("%s", n);

for(i=0;n[i]!=0;i++)//Calculating the size of the string
for(;(*sptr=*(ptr+i))!='\0';sptr++,ptr--)
{
;
}
printf("%s",a);
return 0;

}

最佳答案

你的问题是双重的。

首先,在第一个 for 循环之后缺少一个 ;

for(i=0;n[i]!=0;i++); //note the ;

其次,您使用的数组索引超出范围

for(;(*sptr=*(ptr+i))!='\0';sptr++,ptr--)

使用前需要减少i一次。

你应该写

for(;(*sptr=*(ptr+i-1))!='\0';sptr++,ptr--)

注意:恕我直言,您将简单的事情变得太复杂了。想一个更简单的逻辑。有许多。对于现场示例,请点击 WhozCraig 先生评论中的链接。

关于c - 使用指针反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28298300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com