写了如下的一段代码: const char *str; char *p=str; 提示错误: const char* 不能用于初始化char *类型的实体.这是为什么?我想应该是const char *要求比较严格,赋给一个要求低的 不行(如果p更改了内容就后患无穷了),所以禁止了直接赋值. 指向const的指针不能被赋给指向非const的指针,所以应该用strcpy,也就是另开一块内存,把字符一个个复制过去 const char *expr = "goodidea"; char *b…
可以用const_cast     const char* aa = "this is a const string.";     char* bb = const_cast<char*>(aa);     return 0;   更多const_cast的用法如下: http://en.cppreference.com/w/cpp/language/const_cast…
原本打算在QT用一个字符串"ABCDEF12345"作为类zajiao的构造函数的参数,用来创建类zajiao的对象zajiao1. zajiao zajiao1("ABCDEF12345"); 结果提示: F:\Users\denggelin\Documents\qtduojicheng\main.cpp:31: error: C2664: “zajiao::zajiao(const zajiao &)”: 无法将参数 1 从“const char [12…
char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char *char str[] = "lala";char *str1 = str;cout << str1 << endl; char *转char[]:字符拷贝实现,不能进行赋值操作 // char *转换为char []const char *st = "hehe";char st1[] = "lalalala&quo…
不能从const char *转换为LPCWSTR 在VC 6.0中编译成功的项目在VS2005 vs2005.vs2008.vs2010中常会出现类型错误. 经常出现的错误是:不能从const char *转换为LPCWSTR 如使用MessageBox(hwnd,"TEST",NULL,0)就会报错,如果使用强制转换(LPCWSTR)"TEST",虽然能够通过,但是编码会出错. 可行的办法是使用 _T("TEST")转换,或者TEXT(&qu…
今天在使用vs2008+MFC时候,使用editControl的replacesel(“”)发生报错.如下::不能将参数1从“const char []”转换为“LPCTSTR” 其解决方案就是, 在项目属性里面找到项目默认值下面的字符集, 将其换为:使用多字节字符集就ok了.原因: typedef   LPCTSTR    LPTSTR ; #ifndef   _UNICODE      typedef   TCHAR   char;  #else      typedef   TCHAR  …
转自VC错误:http://www.vcerror.com/?p=1395 问题描述: 代码: CString str("asdfafda"); str.Remove("asd"); 编译报错 error C2664: "ATL::CStringT<BaseType,StringTraits>::Remove": 不能将参数 1 从"const char [4]"转换为"char" error…
解决该问题的方法:使用strcpy函数进行字符串拷贝   原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 和 #include <stdio.h> 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串. 返回指向dest的指针.   // testArray.cpp…
Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换 Qt再使用第三方开源库时,由于库的类型基本上都是标准的类型,字符串遇的多的就是Char*类型 在Qt下怎样将QString转char*呢,需要用到QByteArray类,QByteArray类的说明详见Qt帮助文档. 因为char*最后都有一个‘/0’作为结束符,而采用QString::toLatin1()时会在字符串后面加上‘/0’ 方法如下: Qs…
⒈strcpy的实现代码 char * strcpy(char * strDest,const char * strSrc) { if ((NULL==strDest) || (NULL==strSrc)) //[1] throw "Invalid argument(s)"; //[2] char * strDestCopy = strDest; //[3] while ((*strDest++=*strSrc++)!='\0'); //[4] return strDestCopy;…