c - C中反转字符串的函数

标签 c string reverse

我在 C 语言中编写了这个函数来反转字符串,但是当在字符串中切换字符时程序崩溃了。我不知道是什么原因造成的,因此我们将不胜感激。

void reverse(char s[])
{
    char c;
    int i;
    int j;

    for (i = 0, j = (strlen(s) - 1); i < j; i++, j--)
    {
        c = s[i];
        s[i] = s[j]; //An error occurs here
        s[j] = c;
    }

    printf("%s", s);
}

main()
{
    reverse("Example");
}

最佳答案

阅读此了解更多信息 What is the difference between char s[] and char *s?

另一个链接 https://stackoverflow.com/questions/22057622/whats-the-difference-structurally-between-char-and-char-string#22057685

这应该可以解决它。

main()
{    
char array[] = "Example";
reverse(array); 
}

当你执行 reverse("Example") 时,这与

char *string = "Example";
reverse(string) //wont work

链接应该可以澄清您的疑虑。

关于c - C中反转字符串的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22069759/

相关文章:

c - QMI SDK 启动数据 session

c - 将 errno 打印为助记符?

将十六进制数转换为十进制数

c - 如何使迭代 isalpha 函数的函数起作用?

java - 如何反转字符串中的单词但将标点符号保持在正确的位置?

多个进程可以使用 fopen 追加到一个文件而没有任何并发​​问题吗?

c++ - 函数将返回一个字符串,其中包含两个索引之间的部分

在四边形中将十六进制转换为二进制

c - 输出不同——无法理解逻辑

C 反转字符串不起作用