typedef vector<string> StrVector;
void ASCII2String(const char * sz, StrVector& v1)
{
int val = 0;
string str;
const char * p = sz;
while (*p)
{
str = "";
val = (int)*p;
val &= 0x000000ff;
while (val)
{
switch (val%16)
{
case 0xF:
str = "F"+str;
break;
case 0xE:
str = "E"+str;
break;
case 0xD:
str = "D"+str;
break;
case 0xC:
str = "C"+str;
break;
case 0xB:
str = "B"+str;
break;
case 0xA:
str = "A"+str;
break;
case 0x9:
str = "9"+str;
break;
case 0x8:
str = "8"+str;
break;
case 0x7:
str = "7"+str;
break;
case 0x6:
str = "6"+str;
break;
case 0x5:
str = "5"+str;
break;
case 0x4:
str = "4"+str;
break;
case 0x3:
str = "3"+str;
break;
case 0x2:
str = "2"+str;
break;
case 0x1:
str = "1"+str;
break;
case 0x0:
str = "0"+str;
break;
}
val = val / 16;
}
str = "0x"+str;
v1.push_back(str);
p++;
}
}
void Output(const char * sz, StrVector& v1)
{
fstream fouts;
fouts.open("d:\\dev\\1.txt", fstream::out|fstream::app);
if (!fouts.bad())
{
fouts<<sz<<"\n";
for(StrVector::iterator it = v1.begin(); it != v1.end(); it++)
{
fouts<<*it<<", ";
}
fouts<<"\n";
}
}
int main( void )
{
StrVector v1;
char sz[255] = {0};
sprintf(sz, "%s", "香港");
ASCII2String(sz, v1);
for(StrVector::iterator it = v1.begin(); it != v1.end(); it++)
{
cout<<*it<<", ";
}
cout<<endl;
Output(sz, v1);
memset(sz, 0, sizeof(sz));
v1.clear();
sprintf(sz, "%s", "香港列表");
ASCII2String(sz, v1);
for(StrVector::iterator it = v1.begin(); it != v1.end(); it++)
{
cout<<*it<<", ";
}
cout<<endl;
Output(sz, v1);
return 0;
}
C#下ASCII码转字符串
最新推荐文章于 2022-09-13 10:52:30 发布