将 char* 转换为 char* 小写时,从 'int' 分配给 'char *' 的指针转换不兼容

incompatible integer to pointer conversion assigning to 'char *' from 'int' when converting char* to char* lowercase

当我去编译我的代码时,我收到了这个恼人的警告。在我 运行 通过测试之前,我正在尝试采用 char * 并将其转换为小写。我的代码编译得很好,但我想学习如何摆脱这个警告。具有相同错误的其他帖子没有向我提供我需要更改以消除此错误的内容。

//convert to lower case
char *c = "WORD TO LOWER";
char *s[testWordLen];
for (int i = 0; i < testWordLen; i++)
{
    s[i] =  tolower((unsigned char) c[i]);
}

对我做错了什么的解释也很好。

您正在使用 char *s[testWordLen]; 创建一个二维数组;即,指向字符数组的指针。当您像这样取消引用它时:s[i] = tolower((unsigned char) c[i]);,您将单个字符分配给数组。

解决方法是:将变量声明为 char s[testWordLen];