對於我使用這個自定義解決方案的時刻:
#include <vector>
#include <string>
#include <boost/assign/std/vector.hpp>
using namespace std;
using namespace boost::assign;
bool isIntInSet(int val, std::vector<int> set){
if (std::find(set.begin(), set.end(), val) != set.end())
{
return true;
}
return false;
}
bool isLegal(int val, string isoNum){
const string ISO8859_5 = "ISO8859-5";
if (ISO8859_5 == isoNum){
vector<int> isoSet5;
isoSet5 += 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x00A0,0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,0x0409,0x040A,0x040B,0x040C,0x00AD,0x040E,0x040F,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F,0x2116,0x0451,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457,0x0458,0x0459,0x045A,0x045B,0x045C,0x00A7,0x045E,0x045F;
if (isIntInSet(val, isoSet5))return true;
}
return false;
}
通過查找可見的字符集列表上http://czyborra.com/charsets/iso8859.html每個字符集不包括控制字符,所以這不是完整的ISO8859- 5個字符列表,但對所有可打印字符來說似乎足夠好了。
我投票結束這個問題作爲題外話,因爲它只是一個「給我的代碼」。 –
好的。顯然我不瞭解這裏的文化。我在棧上搜索了幾天的答案。經過多年的使用網站並在可能的地方回答問題,我從來沒有在這裏問過任何問題。我正在提出一個答案,並在我完成後發佈。請告訴我如何改寫問題。 –
如果你打算自己提供代碼,那麼你應該等到你準備好發佈問題和答案並同時提交它們。我們都以爲你希望我們只爲你做。我投票重新開放;一旦其他幾個人也這樣做了,你就可以發佈你的答案。 –