我要創建的字符串來檢查單詞是否是在該行與否的開始。是否有任何字面顯示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