C语言与C++的联系之————————c_str()
来源:互联网 发布:网络机顶盒连网显示灯 编辑:程序博客网 时间:2024/05/16 05:50
标准头文件<cstring>包含操作c-串的函数库。这些库函数表达了我们希望使用的几乎每种字符串操作。 当调用库函数,客户程序提供的是string类型参数,而库函数内部实现用的是c-串,因此需要将string对象,转化为char*对象,而c_str()提供了这样一种方法,它返回const char*类型(可读不可改)的指向字符数组的指针。
简单的例子:
函数声明:const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
char* c;
string s="1234";
c = s.c_str();
//c最后指向的内容是垃圾,因为s对象被析构,其内容被处理(纠正:s对象的析构是在对指针c完成赋值操作之后进行的,故此处并没有错误)
在vc++2010中提示的错误原因:
vc++2010中提示的错误原因
应该这样用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作
———再举个例子———
c_str() 以const char* 类型返回 string 内含的字符串
如果一个函数要求char*参数,可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"
- C语言与C++的联系之————————c_str()
- C语言——数组与指针区别与联系
- 第十五周联系—— C语言习题 字符串长度
- C语言的本质(32)——C语言与汇编之C语言内联汇编
- C++中string类对象的成员函数c_str()与C语言中字符串的联系
- C语言的本质(27)——C语言与汇编之计算机结构
- C语言的本质(30)——C语言与汇编之ELF文件格式
- 初识C++——C语言与C++的区别
- C语言的本质(23)——C标准库之输入与输出(上)
- C语言的本质(24)——C标准库之输入与输出(下)
- C语言之四书五经—C语言书籍推荐
- C语言之四书五经—C语言书籍推荐
- C语言之四书五经—C语言书籍推荐
- C语言的本质(31)——C语言与汇编之函数调用的本质
- 《CSAPP》程序的机器表示——汇编代码与C的联系
- C语言之——strlen()与sizeof()
- Android之——JNI与C语言常见术语
- C语言的本质(28)——C语言与汇编之用汇编写一个Helloword
- “试图执行的操作不受支持”解决
- Portal-Basic Java Web 应用开发框架 v2.6.2 发布(源码、示例及文档)
- Linux 系列(二) - 文本处理
- 智能移动设备,掌控万千精彩
- SPOJ GSS 5. Can you answer these queries V
- C语言与C++的联系之————————c_str()
- VIEWSTATE和EVENTVALIDATION
- OBB文件和StorageManager类使用介绍
- javax.servlet.ServletException: DispatchMapping[XX] does not define a handler
- MinGW手动安装
- linux常用命令一份
- 十大注释技巧教你如何书写容易阅读的代码
- Windows 和 Linux下使用socket下载网页页面内容(可设置接收/发送超时)的代码
- oracle存储过程中的事务