C语言中如何判断字符串中是否存在单引号?

C语言中如何判断字符串中是否存在单引号呢?
刚才通过读文件判断每行是否有单引号存在时,发现莫名其妙的少了很多行。
这是问什么呢?
我是如下这样判断的:(line_cont是文件读取的每行的内容)
if(strstr(line_cont, "'") != NULL)
{}
下面这样也不行
if(strchr(line_cont, "'") != NULL)
{}
在'前面加上\也没用,这是什么原因呢?

单引号作为字符使用时必须用\来引导,写成\'才行,否则编译器会把它当作功能性引号处理而不认为是字符。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
int main(void){
    char str[]="12345\'abcde";
    if(strchr(str,'\''))//要用\引导写成'\''而不能写成'''
        printf("There is a '\'' in the \"str\".\n");
    else printf("There is not any '\'' in the \"str\".\n");
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-10
if(strstr(line_cont, "'") != NULL)

或者

if(strchr(line_cont, '\'') != NULL)

是可行的,如果确实不成功,请写出完整的程序.以及涉及到的文件内容本回答被提问者采纳
相似回答