将字符与西班牙字符进行比较

时间:2013-02-19 00:27:46

标签: c++ char compare character

我有一个任何字符的输入,我需要一个数组来分隔输入中的单词。数组需要只有字母(西班牙语,所以它包括重音字母)。我的代码做到了,它只是没有将特殊的西班牙语字符识别为“¡”,“¿”等。

我怎样设法纠正这个?...这是我的代码。

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];
    }

使用此代码我得到了这个输入和输出:

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/

输出只是由“/”

分隔打印的数组

1 个答案:

答案 0 :(得分:0)

尝试设置区域设置,如下所示:

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

应该让ispunct()认出西班牙语标点符号。