【C++】stringstream的str() 和 string的c_str()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【C++】stringstream的str() 和 string的c_str(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1388字,纯文字阅读大概需要2分钟。
内容图文
std::stringstream::str
// stringstream::str #include <string> // std::string #include <iostream> // std::cout #include <sstream> // std::stringstream, std::stringbuf int main () { std::stringstream ss; ss.str ("Example string"); std::string s = ss.str(); std::cout << s << '\n'; return 0; }
streamstring在调用str()时,会返回临时的string对象。而因为是临时的对象,所以它在整个表达式结束后将会被析构。
如果需要进一步操作string对象,先把其值赋给一个string变量后再操作。
std::string::c_str
// strings and c-strings #include <iostream> #include <cstring> #include <string> int main () { std::string str ("Please split this sentence into tokens"); char * cstr = new char [str.length()+1]; std::strcpy (cstr, str.c_str()); // cstr now contains a c-string copy of str char * p = std::strtok (cstr," "); while (p!=0) { std::cout << p << '\n'; p = std::strtok(NULL," "); } delete[] cstr; return 0; }
c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同.
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
1.c_str是一个内容为字符串指向字符数组的临时指针;
2.c_str返回的是一个可读不可改的常指针;
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:最好不要这样:
const char* func() { const char* c; string s="1234"; c = s.c_str(); return c; }
因为从func()函数退出后,s 会被析构,返回的指针指向了无效区域。
内容总结
以上是互联网集市为您收集整理的【C++】stringstream的str() 和 string的c_str()全部内容,希望文章能够帮你解决【C++】stringstream的str() 和 string的c_str()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。