C++:string转为char*后输出编码值异常 恒为-95
include<iostream>
#include<string>
using namespace std;
int main()
{
int Tra(string* s); \\将string转为char 并返回编码值的函数
string s="¤";
char ch='¤';
cout<<Tra(&s)<<" "<<int(ch)<<endl;
system("pause");
return 0;
}
int Tra(string* s)
{
char c[3];
strcpy(c,(*s).c_str());
int m=int(*c);
return m;
}
输出结果为 -95 -15
符号¤在string和char中难道不是一样的吗?
而且把¤替换为其他的特殊符号,string s的输出结果仍是-95
//本人C++刚入门,用的vs2005.如有错误,请不吝赐教 string char 编码
[解决办法]
¤ 是一个中文字符, 用一个 char 是表示不了的, 使用 char ch='¤'; 的时候会被截断,
[解决办法]
中文字符是2个字节,而char是一个字节。