2013-10-07 3 views
2

텍스트 파일과 단어를 사용하는 프로그램을 만듭니다. 그것은 텍스트 파일을 읽고 단어를 현재 읽고있는 단어와 비교합니다. 내가 만든 방법은 "s"를 무시하는 것이 었습니다. 예를 들어 "NASA"를 검색하고 "NASA 's"라는 단어를 발견하면 "NASA"로 읽습니다. 불행히도 "if (ch == ''\ ')", "ch"는 현재의 char을 사용하여 아포스트로피를 잡을 수 없습니다. 텍스트 파일의 아포스트로피가 이렇게 생겼기 때문에 어쩌면 그럴 것입니다. ' 나는 그것을 수용하는 방법을 모른다.if 문에서 아포스트로피를 가져올 수 없습니다.

else if (ch == '\'') 
       { 

#if 1   
        printf("Comparing Apostrophe\n"); 
#endif 
        continue; 

       } 

그것이 내가 당신을 보여 허용하고 있지 않다 큰 프로그램의 일부임을 참고 :

는 여기에 아포스트로피를 잡을 필요는거야. 이것은 처음에는 "else if"이온을 설명합니다.

감사합니다.

+0

당신이 텍스트에있는 아포스트로피의 종류를 확인하려면, 당신은 새로운 텍스트 파일에 "NASA의"부분을 복사하고 당신에게 모든 문자의 ASCII 코드를 보여주는 작은 프로그램을 작성할 수 있습니다. – PiotrK

+1

@PiotrK 왜 * 쓰기 * 할 프로그램? 그냥 정규 16 진수 편집기를 사용하십시오. 나는 HxD의 팬이지만 어떤 16 진수 편집기도 작동 할 것입니다. – neminem

답변

2

아포스트로피가 '' '처럼 보이면' ''문자 만 확인하면됩니다. 이것은 다른 문자입니다 - 확장 ASCII 문자 146 (10 진수), "올바른 작은 따옴표"와 같습니다. 이 텍스트는 아마도 MS Office에서 나왔을 것입니다. 작은 따옴표와 큰 따옴표를 "스마트"따옴표로 변환하는 것을 좋아합니다 (Office 이외의 텍스트로 작업하는 경우에는 아무것도 아닙니다). "왼쪽 작은 따옴표", ascii 문자 145는 동일한 세트의 다른 절반이므로 텍스트에도 일부 문자가있을 수 있습니다. 즉 :

대신 이스케이프 문자는 39입니다 아포스트로피에 대한 ASCII 번호를 사용할 수있는 사용의
else if (ch == '\'' || ch == '’' || ch == '‘') 
{ 
    [do stuff] 
} 
+1

+1. 또한 때때로 (때때로 적절하게) 사용되기 때문에 왼쪽의 작은 따옴표 (십진수 145)를 확인할 것입니다. – lurker

+0

@mbratch 좋은 지적. – neminem

0

: 다른 경우 (채널의 == 39)

+0

이렇게하지 않아도됩니다. ' '\' '는 적절한 구문입니다. – lurker