if(notfound == 1)
{
int len = strlen(word);
//if(strcmp(word, array)== 0)
if(strcmp(array3,word)==0)
{
word[len - 1] = '\0';
}
if(strcmp(word, array2) ==0)
{
word[len - 1] = '\0';
}
fprintf(NewFile,"%s\n", word);
}
이것은 내 문제의 대부분을 가져 오는 부분 인 맞춤법 검사 프로그램을위한 코드입니다. 내 프로그램은 Dicitonary와 비교하여 텍스트 파일의 맞춤법을 정교하게 검사합니다. 이 코드의 단어는 텍스트 파일의 잘못된 단어가 포함 된 배열로 유지됩니다. 배열 3은 구두점을 포함하고 다음과 같이 보이는 단어 배열입니다. char* array3[] = {"a.", "b.", "c.", "d.", "e.", "f.", "g.", "h."};
나는 구두점을 없애기 위해이 배열과 단어를 비교하려고합니다 (이 경우 점들이지만 나중에는 구두점을 처리하도록 계획되었습니다). 문제는 배열이 ".", ",", "!", "?", ";"처럼 보이면 strcmp는 그냥 건너 뛰고 구두점을 없애지 않는다는 것입니다. 그리고 저는 제 방법이 매우 간단하고 적절하지 않음을 알고 있습니다. 그러나 "c."로 시도하면 효과가있었습니다. 게다가 나는 C 언어C 맞춤법 검사 프로그램에서 구두점을 제거하는 방법은 무엇입니까?
ayone 도움이 할 수있는 경우에 아주 새로운 오전, 난 정말 정말 주 동안이 문제에 끼 었어 사촌 지금
코드를 들여 쓰기를 시작하십시오. –
그리고 변수'array3'을 쓰지 말고,'punctuations'와 같은 중요한 이름을 사용하십시오. –
코드가 너무 적어서 여기에 무엇이 잘못 될 수 있는지를 알 수있는 방법이 없습니다. 하지만'strcmp (array3, word)'는 어색해 보입니다. 컴파일러 경고를 켜고 경고를 오류로 처리하십시오. –