문자열과 키워드 배열이 있습니다. 문자열에 목록에있는 키워드 중 하나가 포함되어 있으면 키워드가이 문자열의 유일한 요소인지 확인하고 싶습니다. 그렇지 않은 경우 오류를 반환하고 싶습니다. 마지막으로 문자열은 항상 \ n로 끝납니다. 예를 들어문자열에 목록의 단어가 포함되어 있습니까?
const char * keywordsTable[] =
{
"INIT",
"BEGIN",
"END",
"ROUTINES",
"ENDROUTINES",
"ENDWHEN",
"WHEN",
"WHILE"
};
내 문자열 "BEGIN\n"
이 모든 것이 괜찮 경우 :
내 키워드 배열은 다음과 같다. 내 문자열이 "BEGIN FOO\n"
또는 "FOO BEGIN\n"
인 경우 오류가 발생합니다. 마지막으로 내 문자열이 "BEGINFOO\n"
이면 모든 것이 좋습니다.
int CheckKeyword(char * str)
{
int nKeywords = sizeof(keywordsTable)/sizeof(keywordsTable[0]);
char * strTok = NULL;
char * keywrdWithLF = malloc(20);
// I don't want to check for the last two keywords nor the first
for (int i = 1; i < nKeywords - 2; i++)
{
strcpy_s(keywrdWithLF, 20, keywordsTable[i]);
strcat_s(keywrdWithLF, 20, "\n");
strTok = strstr(str, keywrdWithLF);
// If my string contains a keyword
if (strTok != NULL)
{
// If the string contains other characters... and I'm stuck
if (strcmp(str, keywrdWithLF))
{
}
else
{
free(keywrdWithLF);
return 1;
}
}
}
free(keywrdWithLF);
return 0;
}
내 들여 한판 승부 불평하지 말아 주시기 바랍니다 (사전에 감사합니다
내가 해봤 뭔가 (내가 진행하는 방법을 모른다) (에러 코드는 다른는 0, 1) 스타일, 나는 Whitesmith 들여 쓰기를 사용해야한다)!
좋아, 문제는 여기에 무엇입니까? –
나는 내 코드에 갇혀있는 곳을 썼다. – Lovy
"나는 갇혀있다"는 질문이 아닙니다. 문제가 정확히 무엇입니까? –