如何在C中放置一个字符串

时间:2014-11-09 12:47:40

标签: c pointers

我正在尝试使用strstr()来查找第一次出现的双引号(“),但是,当我使用这行代码时:

pch = strstr(tmp,""");

它不会编译,因为我没有终止引用。所以我用了

pch = strstr(tmp,'"');

然后告诉我我有这样的错误:

passing argument 2 of ‘strstr’ makes pointer from integer without a cast [enabled by default]
  pch = strstr(tmp,'"'); //finds the first occurrence and deletes the preceeding
  ^
In file included from /usr/include/stdio.h:29:0,
                 from assignment1.c:1:
/usr/include/string.h:40:8: note: expected ‘const char *’ but argument is of type ‘int’
 char  *_EXFUN(strstr,(const char *, const char *));

有关此问题的任何想法或有没有人知道使用strstr检测双引号字符的方法?也许用ascii转换?

提前致谢。

4 个答案:

答案 0 :(得分:3)

使用pch = strstr(tmp,"\"");,它会起作用

答案 1 :(得分:1)

你必须输入\"而不是"

答案 2 :(得分:1)

要在字符串中插入任何特殊字符,您需要用反斜杠转义它。

在转义字符之后,编译器将知道该字符没有正常的角色。 \"将通知双引号不会像正常一样结束字符串,因此"\""将导致带有双引号的字符串。

转义序列的完整列表可用here

您可以使用strstr进行搜索,但如果您只是想找到某个角色的位置,那么strchr会更快

pch = strchr(tmp,'\"');

答案 3 :(得分:0)

你可以逃避报价!像这样:

pch = strstr(tmp,"\"");