用c连接字符串还是比较麻烦的。因为string并非c的内置类型。我们看看麻烦的情况。以连接字符串为例:
c的代码是这样的:
char * strcat_cstyle()
{
// c++ style
char* a ="hello ";
char* b ="world by c";
int len = strlen(a)+strlen(b)+1;
char*c =(char*)malloc(len);
memset(c,0,len);
strcat(c,a);
strcat(c,b);
return c;
}
你需要
- 自己计算新字符串的长度
- 自己分配并转型
- 自己清空内存区
- 然后连接
- 别忘了,用完后记得free
不这样会如何?你可以试试吧len改小,看看c遇到这样的问题的反应会如何暴烈。
还好,在c++内虽然没有string类型,但是在库内提供了一个string的类,于是:
string strcat_cppstyle()
{
// c++ style
string a ="hello";
string b ="world by c++";
return a+b ;
}
这样就很简单直接了。
分享到:
相关推荐
C语言代码和C++代码--vs2008从指针到多线程、文件读写、套接字 C: 阶乘 冒泡排序 数值转换 行指针、列指针 形状--打印菱形 指针做冒泡排序 6.5指针函数 6.7用指针显示二维数组 7.1文件操作 7.2文件信息提取 8指针...
文章简述了C++ UTF-8与 Unicode互相转换的规则与技术,附加转换代码
具体介绍可以参考我的文章《进制转换-不同位数的数据相互转换(C/C++实现)》 -------------------------------------------------------------------------------- 功能设计 1. 32位数据转成2个16位数据 2. 16位...
很多人喜欢用CString 或std:string,但是他们的缺点是不能完成汉字各种类型之间的转换,提供三种类库ascString,ucsString,utfString以及工具utfCount,utf8_ucs2_t,tcf8_ucs4_t类库,用于各种字符串之间的直接转换`...
MFC编写的四参数、七参数坐标转换代码,有界面,可直接运行
c/c++进制转换 转中文 16进制 2进制 10进制 相互转换........................................................................
基于C/C++模拟处理机调度、存储管理(动态分区分配、分页存储地址转换)和文件系统 基于C/C++模拟处理机调度、存储管理(动态分区分配、分页存储地址转换)和文件系统 基于C/C++模拟处理机调度、存储管理...
主要介绍C++/C语言中进制转换的相关函数,以及一些对字符串处理的函数,并给出了一些实例
提供一个大小端转换的类,可以转换short int float double类型,提供一个大小端转换的类,可以转换short int float double类型,提供一个大小端转换的类,可以转换short int float double类型
一个c++转c的工具(cfront源码),很好的工具源代码。满足特殊人使用。
利用C++的MFC实现原码、补码、反码的转换
GB2312编码与utf-8编码的字符串的转换,主要使用windows api函数MultiByteToWideChar和WideCharToMultiByte,代码简洁,经测试可用
C,C++ To Delphi转换器(源码).rar
C# 再调用C或C++ 动态库的时候,总是被生成正确的C函数在C#中的正确声明而困扰,而生成C++中结构体在C#中的声明
这个程序的主要用途是将C/C++代码转换成HTML格式的,便于在博客和网站上面粘贴,本人使用的是VS2005编辑以及编译.
-> Matlab 类型转换器简介:C/C++ 类型(本机、STL、openCV...)和 Matlab 矩阵(编译或运行时)之间的双向转换。 关键词:C、C++、mxArray、OpenCV、IplImage、迭代器、mex、引擎 描述: 考虑以下场景(尤其是在...
基于c++ GPS时间转换
MISRA C++ 2008 规则整理.pdf
#二维码(QRcode)生成算法 C语言/C++ 源码 1. 根据输入字符串识别编码模式; 2. 根据输入字符串长度选择合适的QRcode版本; 3. 将编码转换为二进制位流表示为数据码字; 4. 使用多项式生成纠错码; 5. 将数据码和...
windwos C++ gdi++实现jpg图像压缩-图像裁剪和缩放-图像格式转换-图像dpi修改