我要创建的字符串来检查单词是否是在该行与否的开始。是否有任何字面显示c中的换行符不像<n>?
代码是这样的。
HELLO是在一开始的“hello”只是空间在年底检查的Hello在开始时
char *word = "hello";
strcat(word," ");
第一部分。我使用CONCAT,因为如果我做这样的“你好”,我得到什么,我真的不希望have.Here因为我要确保这是打招呼线的起始字,如果我有任何的机会,我认为把任何文字放在它之前,以表明它是这样的,你好必须是行中的第一个,而不是必须有空间。
HELLO像“你好”与前面的空格线内,并最终
char *word1 = " ";
strcat(word1,"hello");
strcat(word1," ");
我不得不再次使用CONCAT为好。如果我这样写“你好”,它不会再给我正确的答案。
HELLO在该行的最后一个字 “你好\ N” 在前面的空间
char *word2 = " ";
strcat(word2,"hello\n");
这是最主要的部分
int main()
{
int conditionNUM = 0;
FILE *f =fopen("file.txt","r");
if(f!=NULL)
{
char *a;
char *b;
char *c;
chat line[256];
while(fgets(line,256,f))
{
a=strstr(line,word);
b=strsr(line,word1);
c=strstr(line,word2);
if(a != NULL)
conditionNum = 1;
else if(b != NULL)
conditionNum = 2;
else i(c != NULL)
conditionNum =3;
printf("%d\n",conditionNum);
}
fclose(f);
}
}
我的文本文件是这样的
你好,约翰
约翰你好,约翰
约翰你好
hellohello
约翰hellohello
约翰
输出是这样
所以我的代码行内,但如果 “hellohello” 中的 “hellohello” 一个真正适用起始字条件以及是该行的最后一个词,而不是它所说的不适用,这是我真正想要的,但如果它是在行内失败的话。那么有没有任何C字面就好像我之前写的
char *word = "?hello";
在第一个条件。如果我能解决这个问题,我将单独获得所有条件。
请阅读'strcat'手册 - 参数是按顺序'目的地,source' –
'的strcat (“hello”,word1);'没有意义,它有未定义的行为,因为它将该单词附加到字符串文字。 –
@AnttiHaapala对不起,当我写我的问题,我只是错过了那一部分。无论如何,在我的代码中,格式就像目的地,源代码,但它与我的问题无关。 – gaban