C字符串大写问题。我遇到总线错误

C string capitalize problem. I encounter bus error

我正在制作大写函数。但是当执行这段代码时,会发生总线错误。有没有人可以调试这个?我真的需要你的帮助!!请帮我 。我是没有c知识的计算机编程新手。

#include <stdio.h>
void    up(char *c)
{
    if((*c < ‘z’) && (*c > ‘a’))
    {
        *c -= 32;
    }
}
char    *ft_strcapitalize(char *str)
{
    int i;
    i=0;
    while (str[i])
    {
            up(&str[i]);
        i++;
    }
    return str;
}
int main()
{
    char *str = “salut, comment tu vas ? 42mots quarante-deux cinquante”;
    ft_strcapitalize(str);
    printf(“%s”, str);
}

此解决方案应该适合您。

#include <stdio.h>

void up(char *c)
{
    if (!c)
        return;
    if((*c <= 'z') && (*c >= 'a'))
        *c -= 32;
}

char *ft_strcapitalize(char *str)
{
    int i;

    for (i = 0; str[i]; i++)
        up(&str[i]);
    return str;
}

int main()
{
    char str[] = "salut, comment tu vas ? 42mots quarante-deux cinquante";

    ft_strcapitalize(str);
    printf("%s\n", str);
    return 0;
}