所以我对 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] 删除。
我来说两句