c++ stl string char* 向 string 转换的问题

简介: 请看下面代码 string AddString(const string& a,const string & b) { return a + b; } int _tmain(int argc, _TCHAR* argv[]) { const char *...

请看下面代码

string AddString(const string& a,const string & b)
{
    return a + b;
}



int _tmain(int argc, _TCHAR* argv[])
{
    const char * szA = "Zhang";
    const char * szB = 0;
    string strRet = AddString(szA,szB);
    cout<<strRet<<endl;
    system("pause");
    return 0;
}

上面的代码当szB=0 时,调用时程序会崩溃。有时候在某些脚本语言传字符串当字符串为空时 这时传到c++时此时的char*指针就是为0的。就这样崩溃了。

有什么解决办法 避免这种问题呢?

相关文章
|
9月前
|
C# 索引
C#基础⑨——字符串(string str = null 与string str = ““的区别)
字符串数组变字符串(字符串数组变新的字符串数组)
|
9月前
|
存储 Java 索引
String和Char的区别
String和Char的区别
252 1
【剑指offer知识点】List转int[],List转String,String转int,char[]转String,String 转char[],List转String[]
【剑指offer知识点】List转int[],List转String,String转int,char[]转String,String 转char[],List转String[]
100 0
【C++】string和int类型相互转换
【C++】string和int类型相互转换
【C++】string和int类型相互转换
每天一个知识点(二)String str=“i”与 String str=new String(“i”)一样吗?
不一样,使用String str="i",java虚拟机会把它分配到常量池中,而 String str=new String(“i”)创建了一个对象,会被分到堆内存中。
|
安全 C++
string和stringstream用法总结
string和stringstream用法总结 一、string string 是 C++ 提供的字串型態,和 C 的字串相比,除了有不限长度的优点外,还有其他许多方便的功能。要使用 string, 必須先加入这一行: #include <string> 接下來要宣告一个字串变量,可以写成: string s; 我们也可以在宣告的同时让它设成某个字串: string s="TCGS"; 而要取得其中某一個字元,和传统C 的字串一樣是用 s[i] 的方式取得。
3390 0