文字マッチングの新しいスキーム-ワイド文字wchar_t
2069 ワード
c 99規格ではwchar_を追加t、つまり幅の広い文字、手間が省けて多くの木があって、1位の幅の広い文字は1つの漢字を保存することができます!
百科事典より抜粋:
charは8ビット文字タイプで、最大256文字しか含まれません.多くの外国語文字セットに含まれる文字数は256文字を超えており、char型は表すことができません.
wchar_tデータ型は一般に16ビットまたは32ビットであるが、異なるCまたはC++ライブラリには異なる規定があり、例えばGNU Libcがwchar_を規定するtは32ビット
[1],とにかくwchar_tが表す文字数はchar型をはるかに超えている.
標準C++のwprintf()関数とiostreamクラスライブラリのクラスとオブジェクトはwchar_を提供します.t幅文字タイプに関する操作.
次に、文字マッチングのプログラムを書いて、文字の各文字の出現回数を検索します.
百科事典より抜粋:
charは8ビット文字タイプで、最大256文字しか含まれません.多くの外国語文字セットに含まれる文字数は256文字を超えており、char型は表すことができません.
wchar_tデータ型は一般に16ビットまたは32ビットであるが、異なるCまたはC++ライブラリには異なる規定があり、例えばGNU Libcがwchar_を規定するtは32ビット
[1],とにかくwchar_tが表す文字数はchar型をはるかに超えている.
標準C++のwprintf()関数とiostreamクラスライブラリのクラスとオブジェクトはwchar_を提供します.t幅文字タイプに関する操作.
次に、文字マッチングのプログラムを書いて、文字の各文字の出現回数を検索します.
//Vs2005
#include
#include
#include
using namespace std;
locale loc("chs");
int main()
{
wchar_t wStr[] = L" 3 , , 、 、 , 、 、 。 , , 、 , 。";
wchar_t wStr1[200] = L"";// ,
int Textcount = 0, Dcount = 0;// ( )
float count[200] = { 0 };//
bool exist = false;//
for (int i = 0; i < 200; i++)
{
if (wStr[i] == L'\0')
{
Textcount = i;
break;
}
for (int m = 0; m < 200; m++)
{
if (wStr[i] == wStr1[m])
{
count[m]++;
exist = true;
break;
}
if (wStr[m] == L'\0')
{
break;
}
}
if (exist == false)
{
wStr1[Dcount] = wStr[i];
count[Dcount]++;
Dcount++;
}
exist = false;
}
wcout.imbue(loc);
cout << " :" << endl;
wcout << wStr << endl;
cout << "/" << endl;
cout << " " << Textcount << " ( 、 、 、 )" << endl;
cout << "/" << endl;
cout << " " << Dcount << " , :" << endl;
cout << "/" << endl;
for (int i = 0; i < 100; i++)
{
if (count[i] == 0)
{
break;
}
wcout << wStr1[i] << " :";
cout << (int)count[i] << " " << " :" << count[i]*100 / Dcount <