gpt4 book ai didi

c - 就地反转字符串时出现问题

转载 作者:行者123 更新时间:2023-11-30 14:26:38 24 4
gpt4 key购买 nike

我正在编写代码来反转字符串:

void ReverseInPlace(char * x)
{
char * end = x;
int i;
i = 0;
char temp;
while(*end)
{
++end;//point tol end
++i;//count the lenght
}
--end;
printf("%s",end);

printf("%d",i);
while(i)
{
temp = *end;
printf("%s","\n");
printf("%c",temp);

end--;
x++;
i--;
}
printf("%s","\n");//blank line
printf("%s","\n");//blank line
printf("%s","-----");//blank line
printf("%s",x);//print original
}

这是我的困惑:
尽管我能够反向打印字符,但我想在不使用数组的情况下反转字符串

当我尝试执行以下操作时出现错误:

*x = temp;

最佳答案

你说你正在这样做:

ReverseInPlace("123456789");

你需要做这样的事情:

char str[] = "123456789";
ReverseInPlace(str);

后一种方式会分配可以修改的存储空间,而不是修改文字字符串,这是非法的。

关于c - 就地反转字符串时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8871512/

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