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

このコードで、私はこの入力と出力を取得しました:

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/

出力は、「/」で区切られて印刷された配列だけです。

4

1 に答える 1

0

次のようにロケールを設定してみてください。

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

ispunct()スペイン語の句読点を認識させる必要があります。

于 2013-02-19T00:45:28.080 に答える