为什么字符反转不了的?

img

这么写

#include<stdio.h>
void reverse(char* s)
{
    // 获取字符串长度
    int len = 0;
    char* p = s;
    while (*p != 0)
    {
        len++;
        p++;
    }

    // 交换 ...
    int i = 0;
    char c;
    while (i <= len / 2 - 1)
    {
        c = *(s + i);
        *(s + i) = *(s + len - 1 - i);
        *(s + len - 1 - i) = c;
        i++;
    }
}

int main()
{
    char s[100];
    scanf("%s",s);
    reverse(s);           // 反转字符串
    printf("%s", s);
    return 0;
}

img

5行只申请了一个字节空间,肯定不够啊
char *str = (char*)malloc(1000*sizeof(char));
申请1000个字节吧,大一点才够用

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632