64,648
社区成员
发帖
与我相关
我的任务
分享
注意,/*编译器在处理中文字符时,会自动根据字符的位7来读入一个
* 或两个字符,这时可以强制采用unsigned char *来读入一个字符。***********************************************************************/
const char* CharToHex (const char* in, char* out)
{
if (!in || !out) return 0;
for( ; *in != 0; )
{
unsigned char *p = (unsigned char*) in;
char a[3];
*out++ = '%';
sprintf(a, "%02x", *p);
*out++ = a[0];
*out++ = a[1];
++in;
}//end for
*out = 0;
return out;
}
#include <iostream.h>
#include <string.h>
void char2Hex( char c ) // 将字符以16进制表示
{
char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1);
char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1);
cout << ch << cl << ' ';
}
int main()
{
char str[] = "I love 中国";
for( size_t i=0; i <strlen(str); ++i )
char2Hex( str[i] );
cout<< endl;
}
void char2Hex( char c ) // 将字符以16进制表示
{
char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1);
char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1);
cout << ch << cl << ' ';
}
int main()
{
char str[] = "I love 中国";
for( size_t i=0; i <strlen(str); ++i )
char2Hex( str[i] );
cout<< endl;
}
void char2Hex( char c ) // 将字符以16进制表示
{
char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1);
char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1);
cout << ch << cl << ' ';
}
int main()
{
char str[] = "I love 中国";
for( size_t i=0; i <strlen(str); ++i )
char2Hex( str[i] );
cout<< endl;
}