2013-10-04 163 views
0

我收到这些警告,我不知道为什么。我已将警告消息放在与其对应的代码旁边的代码中。警告:指针和整数之间的比较,赋值使指针整数从指针没有转换?

void removeNewLine (char * userName, int charLenght) 
{ 
int i=0; 

do { 
    if (userName [i]=='/n') //comparison between pointer and integer 
    { 
     userName [i]='/0'; //assignment makes integer from pointer w/o cast 
    } 
i++; 
} while (i<charLenght); 

} 
+0

不要在数组名和下标之间加一个空格:'userName [i] =='\ n''等等(特别是当你不在二元运算符'=='周围放置空格时)。您已被正确地告知了斜线与反斜杠的误用。但是,错误消息对我来说毫无意义。虽然符号'/ n''不是可移植的(GCC表示'警告:多字符字符常量'),它会生成一个整数值,而不是一个指针值。你确定你准确地复制并粘贴了你的代码吗?另外,需要使用空字节来扫描每一个换行符是不寻常的;通常,第一个就足够了(添加'break;')。 –

+0

当然,错误信息与'userName [i] =“/ 0”;'和'username [i] ==“/ n”'一致。 –

回答

5

您有斜杠。你需要'\n'换行,'\0'换NULL字符。

+0

哇!我现在觉得很愚蠢。哈哈谢谢 – user2172993