for循环不能将数组中的特殊字符识别为单个字符

时间:2017-05-31 16:08:24

标签: c arrays

以下代码未找到'/ n'并替换为'/ 0'。看起来编译器认为'/ n'和'/ 0'不仅仅是单个字符并且期望整数值。我试过atoi(),但这没用。

提前致谢。

for (i=0; i<sizeof(filename); i++){
    if (filename[i] == ('/n')) {
        filename[i]= ('/0');
        break;
    }
}

createbn.c:35:21: warning: multi-character character constant [-Wmultichar]
                                    ^
createbn.c:35:21: warning: incompatible integer to pointer conversion passing
  'int' to parameter of type 'const char *' [-Wint-conversion]

在现代的mac,gcc编译器上。

1 个答案:

答案 0 :(得分:3)

您可能需要使用反斜杠来表示特殊字符:

\0
\n

正斜杠不会使其成为转义序列,/0是两个字符。