2013-02-19 4 views
0

나는 어떤 문자로도 입력이되었으므로 입력의 단어를 구분하는 배열이 필요합니다. 배열에는 문자 만 있으면됩니다 (스페인어로되어 있기 때문에 악센트 부호가있는 문자가 포함되어 있습니다). 내 코드는이 코드를 사용하여 특수 스페인어 문자를 "¡", "¿"등으로 인식하지 못합니다.문자를 스페인어 문자와 비교하기

어떻게 해결할 수 있습니까? ... 여기 내 코드가 있습니다. 이 코드

string x[100]; 
int n = 0; 
while (entrada){ 
    entrada>>x[n]; 
    n++; 
} 
n--; 
for(int j = 0;j<n;j++){ 
    cout<<x[j]<<"/"; 
} 
string y[100]; 
for(int i = 0;i<n;i++) 
    for(int j = 0; j<x[i].length();j++){ 
     if(!ispunct(x[i][j])) 
      y[i]+=x[i][j]; 
    } 

가 I이 입출력 얻었다 : 출력에 의해 분리 된 인쇄 단지 배열

input 
======= 
Hola, 
Cómo estás? 
Espero que muy bien. ¡!!! 
El otro día que fui al cine me acordé de la 
película que vimos el año pasado. 

output 
======== 
Hola/Cómo/estás/Espero/que/muy/bien/¡/El/otro/día/que/fui/al/cine/me/acordé/de/la/película/que/vimos/el/año/pasado/ 

을는 "/"

+0

뚜껑을 닫은 상태에서 뚜껑을 닫으면 뚜껑이 닫히고 뚜껑이 닫히고 뚜껑이 닫히고 뚜껑이 닫히고 뚜껑이 닫히고 뚜껑이 닫히고 뚜껑이 닫히고 뚜껑이 닫히고 뚜껑이 닫히지 않습니다 . –

+0

유효한 문자 배열을 만들려고합니다. double을 사용하여 각 요소를 유효한 배열과 비교하고 해당 요소가 맞는지 여부를 검증 할 수 있습니다. –

답변

0

로케일이 같은 것을 설정 시도 :

#include <clocale> 
    ... 
    std::setlocale(LC_ALL, "es_ES"); 

ispunct()은 스페인어 마침표를 인식해야합니다.

+0

나는 이것을 시도했지만 작동하지 않았다. 정확히 같은 결과를 얻었다. – pbelt

+0

'NULL'을 반환 했습니까? 스페인어 텍스트를 정확히 어떻게 인코딩 했습니까? UTF-8? 8859- 뭔가요? 다른 것? 당신의 컴파일러와 OS는 무엇입니까? –

+0

난 그냥 코드를 추가, 그래서 난이 : 사용법 #include 사용법 #include 사용법 #include 사용법 #include 사용법 #include "AD.h" 네임 스페이스를 사용하여 표준; int main() { setlocale (LC_ALL, "es_ES"); ifstream entrada; entrada.open ("entrada.txt"); 문자열 x [100]; int n = 0; while (entrada) { entrada >> x [n]; n ++; } n--; 문자열 y [100]; (int i = 0; i pbelt

관련 문제