“.c_str()”的作用是什么?是不是把string转成char[ ]?

   更新日期:2024.05.02
你这个理解就错了。。。
这个函数的原型是:

const value_type *c_str( ) const;

所以 该函数接口返回的 是一个 符合C规则的字符指针。。。
而且容易混淆的是 .c_str() 和 .data() 两个接口;

从C++标准上的解释来看,只有一点区别:
c_str()返回的指针保证指向一个size() + 1长的空间,而且最后一个字符肯定 "\0 ";
而data返回的指针则保证指向一个size()长度的空间,有没有null-terminate不保证,可能有,可能没有,看库的实现了。

嗯。。。都是字符串里边的成员函数,你可以看看MSDN 里边的信息。。。
祝你好运了。。 by sx_liang ...

c_str函数的返回值是const char*的,是把string转成const char*。

  • 13011311410 :求高手讲解.c_str()的作用,还有为什么我的以下程序会乱码???
    伊钩畏2855 :答:.c_str()就是把string类型转为char*类型,它是string类型自带的一个类型转换函数。关于乱码,是由于你的数据没有初始化,并且输出时循环越界引起的,修改为以下即可:include <iostream> include <string.h> using namespace...
  • 13011311410 :if(strcmp(a[i].c_str(),a[j].c_str())>0)中的c_str()是做什么用...
    伊钩畏2855 :答:std::string::c_str();是string的成员函数,返回字符串的常指针,也就是string字符串的首地址。string str1 = "asdf";const char* str2 = "asdf";strlen( str1.c_str() ); //你不能直接传个string,对吧?st...
  • 13011311410 :“.c_str()”的作用是什么?是不是把string转成char[ ]?
    伊钩畏2855 :答:c_str()返回的指针保证指向一个size() + 1长的空间,而且最后一个字符肯定 "\0 ";而data返回的指针则保证指向一个size()长度的空间,有没有null-terminate不保证,可能有,可能没有,看库的实现了。嗯。。。...
  • 13011311410 :C++中,c_str()的用法
    伊钩畏2855 :答:返回c风格的字符串。如:include<string> const string str="abc";const char *c=str.c_str();cout<<c;
  • 13011311410 :c_str()什么?
    伊钩畏2855 :答:C++中使用string类表示字符串,string类的c_str方法可以返回用C语言的char *的形式表示的字符串
  • 13011311410 :FILE*fp=fopen(file.c_str(),"r")是什么意思?重点是file.c_str(),这...
    伊钩畏2855 :答:file 的类型是 string 吧 fopen 第一个参数要求是const char 如果想传 string 给 fopen 需要使用成员函数c_str() 将string 转化成const char fopen 是打开文件
  • 13011311410 :ifstream ifs(filename.c_str()); string s; while( ifs >> s) cout...
    伊钩畏2855 :答:ifstream ifs(filename.c_str()); // 用文件输入流读入文件名为filename这个文件 string s; // 定义string类对象 while( ifs >> s) // 循环在文件输入流中读入一个字符串 cout << s << "\n"; //...
  • 13011311410 :...s.substr(5,2).c_str());我不明白c_str()的作用是什么?
    伊钩畏2855 :答:char *型字符串是一个简单的字符数组,一般会以'\0'结尾,没有其它多余东西 string不一样,它是一个封装的类,是STL中提供的一个支持很多高级操作的数据类型,建议你参考一下C++教程介绍string的部分吧 ...
  • 13011311410 :c++编写程序,打开指定的一个文本文件,并能在其中每一行的前面加上行号...
    伊钩畏2855 :答:参数:strFileName,需要转化的文件名路径 / int AppendLineFlag(string strFileName){ //输入文件流,用于读取文件内容 ifstream ifReader;//以输入方式打开文件 ifReader.open(strFileName.c_str(), ios::in);if (!if...
  • 13011311410 :c语言中str是什么意思?
    伊钩畏2855 :答:字符串类型是c语言中的一个基本数据类型,用来处理文本数据。字符串类型中包括了多个字符,可以是字母、数字、符号、空格等,这些字符都以一个null字符作为字符串的结尾。:如何在c语言中使用str?c语言的标准库中提供了许多...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网