VC++ 获得前3位的字符串?
char name[]= "我爱你1314 ";
怎么才能获得前3位的字呢? 也就是(我爱你)这3个字
[解决办法]
const int LEFT=3;
char * p= "ddddasdfsd源字符串ANSIf ";//源字符串ANSI
WCHAR *w=new WCHAR[(strlen(p)+1)]; //源字符串UNICODE
char * dp=new char[LEFT*2+1]; //截取后字符串ANSI,由于结果可能超过LEFT字节数,故分配2倍
WCHAR *ws=new WCHAR[LEFT+1];//截取后字符串UNICODE
//清0
memset(w,0,(strlen(p)+1)*sizeof(WCHAR));
memset(ws,0,(LEFT+1)*sizeof(WCHAR));
memset(dp,0,(LEFT+1)*sizeof(char));
//把源ANSI转换到UNICODE
MultiByteToWideChar( CP_ACP, 0, p,
strlen(p)+1, w,
strlen(p)+1 );
//截取左边若干字符(非字节)保存到ws中
wcsncpy(
ws,
w,
LEFT
);
//转换截取后的字符串到ANSI字符串
WideCharToMultiByte( CP_ACP, 0, ws, -1,
dp, LEFT*2+1, NULL, NULL );
//显示结果
TRACE( "%s\n ",dp);
//释放内存
delete[] dp;
delete[] ws;
delete[] w;
//你用的是VC6.0,不支持CStringW,这段代码支持VC6的,不用CStringW