1、标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。

2、c_str()是Borland封装的String类中的一个函数,它返回当前字符串的首字符地址。换种说法,c_str()函数返回一个指向正规C字符串的指针常量,内容与本string串相同。这是为了与C语言兼容,在C语言中没有string类型,故必须通过string类对象的成员函数c_str()把string对象转换成C中的字符串样式。

3、c_str()的原型是:const char*c_str() const;

4、c_str()生成一个const char*指针,指向以空字符终止的数组。(data()与c_str()类似,但是返回的数组不以空字符终止。)

5、注意:一定要使用strcpy()等函数来操作c_str()返回的指针。例如下面这样写就是错误的:

  1. char* c;

  2. string s="1234";

  3. c = s.c_str();

上述代码中,c最后指向的内容是垃圾,因为s对象被析构,其内容被处理,同时编译器将会报错。正确代码如下:

  1. char *cstr,*p;

  2. string str ("Please split this phrase into tokens");

  3. cstr = new char [str.size()+1];

  4. strcpy (cstr, str.c_str());

6、如果一个函数要求char*参数,可以使用c_str()方法。

7、copy(p,n,size_type _Off = 0):从string类型对象中至多复制n个字符到字符指针p指向的空间中。默认从首字符开始,但是也可以指定,开始的位置(记住从0开始)。返回真正从对象中复制的字符。第三个参数可以缺省。以下代码显示了copy()函数的用法:

  1. string str ("Please split this phrase into tokens");

  2. basic_string <char>:: size_type cc;

  3. char arr[20] = {0};

  4. basic_string <char>:: pointer arrayPtr = arr;

  5. cc = str.copy(arrayPtr,10);

  6. cout << "The number of copied characters in cc is: "<< cc << endl;

  7. cout << "The copied characters array1 is: " << arrayPtr << endl;

C++中c_str()函数的用法相关推荐

  1. 浅述numpy中argsort()函数的用法

    浅述python中argsort()函数的用法 由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在pyt ...

  2. C++中substr函数的用法

    C++中substr函数的用法 #include<string> #include<iostream> using namespace std; main() { string ...

  3. numpy中where函数的用法

    numpy中where函数的用法 numpy.where(condition,x,y)--若满足condition,输出x,否则输出y. 举例: 例1:一维数组 >>> a = np ...

  4. delphi中move函数的用法

    delphi中move函数的用法 -------------------------------------------------------------------------------- 20 ...

  5. SQL中object_id函数的用法

    SQL中object_id函数的用法 收藏  int object_id('objectname'); 此方法返回数据库对象标识号. 其中,参数objectname 表示要使用的对象,其数据类型为nc ...

  6. python remove函数_python中remove函数的用法是什么?

    python中remove函数的用法是什么? python中remove函数的用法: 描述 remove() 函数用于移除列表中某个值的第一个匹配项. 语法 remove()方法语法: list.re ...

  7. Delphi中 StrToIntDef函数的用法

    Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strto ...

  8. python中int函数的用法浅析_Python中int()函数的用法浅析

    int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__ ...

  9. python中sorted函数的用法_Python3 中sorted() 函数的用法

    描述 sorted() 函数对所有可迭代的对象进行排序操作. 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象. key – ...

  10. oracle中的to_number,Oracle中to_number()函数的用法

    to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...

最新文章

  1. GARFIELD@11-07-2004
  2. 基于VLC的播放器开发
  3. 跟着Artech学习WCF扩展(2) 自定义Channel与执行的顺序
  4. 笔记-项目人力资源管理
  5. FormView在什么情况下自动生成模板项?
  6. Java中的XSL转换:一种简单的方法
  7. Javascript常用的设计模式详解
  8. 催人泪下!做技术打铁还需自身硬
  9. iOS-CoreText的那些事【电子书的那些事】
  10. http接口 Spring boot中的Http压缩配置gzip
  11. 读书笔记:《遇见未知的自己》
  12. Python 北京房价预测实验报告 深度学习 tensorflow keras
  13. 《指数基金投资指南》读书笔记_2022002
  14. 胡子决定编程语言运势
  15. 计算机网络提供给用户的常见服务有文件服务,【填空题】计算机网络提供给用户的常见服务主要有文件服务、消息传递服务、__________服务和应用服务。...
  16. 惠普打印机卡纸问题,解决.
  17. VS2013漂亮字体
  18. linux SVN安装及配置图解教程
  19. 游戏图标的设计跟其它应用的图标设计有何不同?
  20. 深度学习中基本神经网络(二)

热门文章

  1. window10笔记本插上耳机音量只能35
  2. 计算机视觉和模式识别领域企业论坛,第三届中国模式识别与计算机视觉大会(PRCV 2020)圆满举办...
  3. python画画excel_用Python在Excel里画出蒙娜丽莎
  4. 华为ensp配置vrrp
  5. Excel表格快捷键使用
  6. java支持xls格式的excel导入和导出
  7. Latex下划线问题
  8. Python-初应用:乌龟吃鱼(菜菜狂踩雷现场、典型低级错误)
  9. Halcon视觉实战例程之汉字识别
  10. 音视频中的帧I 帧,B帧,P帧,IDR帧理解