将 const char * 转换为小写 char *

e10

所以我对 c 很陌生,我有这个函数应该输入一个单词并以小写形式输出它。这是我迄今为止尝试过的

char *lowercase(const char *word) {
    int length = strlen(word);
    char *lower = malloc(sizeof(word));
    lower[length] = '\0';
    for(int i=0; i < length; i++) {
        lower[i] = tolower(word[i]);
    }
    return lower;
}

这会为我输入的每个单词输出 ▒▒▒▒▒*。

我的受托人

malloc(sizeof(word))不正确,因为sizeof(word)它与sizeof(char *)给出单个指针的大小相同您需要为包含 NUL 终止符的字符串分配足够的空间。所以应该是malloc(length+1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章