关于C++中c_str()的问题。

   更新日期:2024.04.19
The function c_str() returns a const pointer to a regular C string, identical to the current string. The returned string is null-terminated.

c_str函数的返回值是const char*的,不能直接赋值给char* ,所以就需要我们进行相应的操作转化(利用strcpy()函数),或用const char *ch试试

//---------------------------------------------------------------------------
#include <string>
#include <cstring>
using namespace std;

int main(void)
{
string a("abcde");
const char *cap=NULL;

char *b=NULL;

cap=a.c_str(); /*用法<1>*/

b=new char[a.size()+1];
strcpy(b,a.c_str()); /*用法<2>*/
return 0;
}
//---------------------------------------------------------------------------

应该是:
const char * ch = str.c_str();

怎么报错,报什么错?说得详细点呀,IT工程技术网上有很多c++基础知识,你可以去看看。

  • 14719101739 :c++ c_str()问题,,为什么转出来的字符串为空?
    游易轮4269 :答:字符串里面有转义字符或者特殊字符,就可能转换失败。或者没有0结尾初始化c字符数组。
  • 14719101739 :c++中c_str()用法,越详细越好。
    游易轮4269 :答:这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作。语法: const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类型...
  • 14719101739 :c++运行函数错误,目测是.c_str的问题。求改正方案
    游易轮4269 :答:cin >> keyword[20];改成cin >> keyword;
  • 14719101739 :【100分】c_str()函数是什么意思?给个例子
    游易轮4269 :答:字符串就是char*,在C++里面包装成了string类型,但是如果你需要char*类型怎么办呢,就要用到string类的成员函数c_str(),返回一个char*表示和string存放的同样内容的字符串 我说的也不过是任何一本书上会说的,你到底是...
  • 14719101739 :“.c_str()”的作用是什么?是不是把string转成char[ ]?
    游易轮4269 :答:这个函数的原型是:const value_type *c_str( ) const;所以 该函数接口返回的 是一个 符合C规则的字符指针。。。而且容易混淆的是 .c_str() 和 .data() 两个接口;从C++标准上的解释来看,只有一点区别:c_str(...
  • 14719101739 :C++中,c_str()的用法
    游易轮4269 :答:返回c风格的字符串。如:include<string> const string str="abc";const char *c=str.c_str();cout<<c;
  • 14719101739 :C语言strcpy()函数和指针的题目
    游易轮4269 :答:str1和str4都分配了9个字节,因为把字符串分配给char数组(数组的大小没由你显式指定时才这样)或char指针时,会比字符串的实际长度多分配1个字节,以容纳'\0'字符,str2是8个字节(8是显式指定的),而str3一个字节...
  • 14719101739 :c_str()什么?
    游易轮4269 :答:C++中使用string类表示字符串,string类的c_str方法可以返回用C语言的char *的形式表示的字符串
  • 14719101739 :if(strcmp(a[i].c_str(),a[j].c_str())>0)中的c_str()是做什么用的...
    游易轮4269 :答:std::string::c_str();是string的成员函数,返回字符串的常指针,也就是string字符串的首地址。string str1 = "asdf";const char* str2 = "asdf";strlen( str1.c_str() ); //你不能直接传个string,对吧?st...
  • 14719101739 :C++中的一个语句,atoi(s.substr(5,2).c_str());我不明白c_str()的...
    游易轮4269 :答:char * 型和string 是完全不同的东西 char *型字符串是一个简单的字符数组,一般会以'\0'结尾,没有其它多余东西 string不一样,它是一个封装的类,是STL中提供的一个支持很多高级操作的数据类型,建议你参考一下C++...
  • 相关链接

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