gpt4 book ai didi

c - C语言中如何反转字符串?

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

我正在尝试反转字符串,但是当我运行代码时,程序崩溃了。我究竟做错了什么?该程序应该首先显示没有反转的字符串,然后反转。

P.S:如果你没有注意到我对 C 语言完全陌生。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverseString(char* str);
int main()
{
char* str = "Hello World";
printf(str);
reverseString(str);
return 0;
}
void reverseString(char* str)
{
int i, j;
char temp;
i=j=temp=0;

j=strlen(str)-1;
for (i=0; i<j; i++, j--)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
printf(str);
}

最佳答案

倒车功能没问题,问题出在其他地方。

char* str = "Hello World";

这里,str指向一个字符串文字,它是不可变的。它被放置在程序的数据段中,修改其内容总是会导致崩溃。

试试这个:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverseString(char* str);
int main()
{
char str [256];
strcpy_s(str, "Hello World");
printf(str);
reverseString(str);
return 0;
}
void reverseString(char* str)
{
int i, j;
char temp;
i=j=temp=0;

j=strlen(str)-1;
for (i=0; i<j; i++, j--)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
printf(str);
}

另一个选项是 strrev() function .

关于c - C语言中如何反转字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29177337/

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