首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

函数形参如何转换成宽字符?看下面

2012-04-25 
函数形参怎么转换成宽字符?看下面changepassword(wchar *user, wchar *pass){.....}mian(){changepassword

函数形参怎么转换成宽字符?看下面
changepassword(wchar *user, wchar *pass)
{
  .....
}

mian()
{
  changepassword(L"admin",L"123");
  return;
}


对字符串常量 可以这样 L"string";
我想对字符串变量 转换 该怎么做 。因为changepassword()的参数 有时候要用其他字符串变量的
我我尝试 L(字符串变量);和(L)字符串变量; 都不行

我想问下要是不用 mbstowcs和WideCharToMultiByte 函数 怎么做最简单
我想啊 字符串常量都可以转换 那变量被赋值后 应该也可以啊

[解决办法]
对于c语言,C99的标准库里面有wchar.h。
提供了宽字符输入/输出,和宽字符操作等函数。
[解决办法]
WideCharToMultiByte,L什么的只对常量有用
要么你就整个程序全部统一,用wchar或char,话说似乎很多开源软件里都是用的char以及utf-8编码,只是如果你要算字符数而不是字节数的话就需要调用函数才行
[解决办法]
试试 _bstr_t

Header: comutil.h

Lib: comsuppw.lib or comsuppwd.lib 

C/C++ code
#include <iostream>#include <string>#include "comutil.h"#pragma comment(lib, "comsuppw.lib")using namespace std;int main() {    // 窄字符输入,宽字符输出    _bstr_t strTmp = "hello";    wcout << (wchar_t*) strTmp << endl;    // 宽字符输入,窄字符输出    strTmp = L"hello";    cout << (char*)strTmp << endl;    system("pause");    return 0;}
[解决办法]
不会混乱。

探讨

这样强制转换 可以吗? 要是中文英文 混合的时候 会不会造成字节的混乱啊

[解决办法]
我错了,我给你写的C++的。它封装了一下多字符集到UNICODE的转换,还接管了多字节与UNICODE的字符串指针,所以不用担心内存问题。不过在C下面用不了,所以还是只能自己调用MultiByteToWideChar了。

探讨

我还是弄不懂你写的代码。。不好意思 我刚学

我打算用WideCharToMultiByte 函数了 因为我没其他办法了

你看看我写的 http://topic.csdn.net/u/20120412/13/b1026c75-3c19-432d-9651-a41f3968523e.html?seed=1143636544&amp;r=78220331#r_78220331

指……

热点排行