char*c;strings="1234";c=s.c_str(); 上述代码中,c最后指向的内容是垃圾,因为s对象被析构,其内容被处理,同时编译器将会报错。正确代码如下: char*cstr,*p;stringstr("Please split this phrase into tokens");cstr=newchar[str.size()+1];strcpy(cstr,str.c_str()); 如果一个函数要求char*参数,可以...
voidGB2ShapeCache::addShapesWithFile(conststd::string&plist) {//const char *fullName = CCFileUtils::sharedFileUtils()->fullPathForFilename(plist.c_str()).c_str();CCDictionary *dict = CCDictionary::createWithContentsOfFile(plist.c_str());// not triggered - cocos2dx delivers empty dict if ...
c = s.c_str(); cout<<c<<endl;//输出:1234 s="abcd"; cout<<c<<endl;//输出:abcd 上面如果继续用c指针的话,导致的错误将是不可想象的。就如:1234变为abcd 其实上面的c = s.c_str(); 不是一个好习惯。既然c指针指向的内容容易失效,我们就应该按照上面的方法,那怎么把数据复制出来呢?这就要...
c_str() 以 char* 形式传回 string 内含字符串 如果一个函数要求char*参数,可以使用c_str()方法: 1strings="Hello World!"; 2printf("%s", s.c_str());//输出 "Hello World!" c_str在打开文件时的用处: 当需要打开一个由用户自己输入文件名的文件时,可以这样写:ifstream in(st.c_str());。其中...
具体分析下如下:c_str()接口是string类的一个函数,返回的是字符串的首地址,返回值类型是const char *的.如果要使用它并对其进行赋值操作,必须要使用strcpy函数.如果直接进行赋值,是不会赋值成功的.(小知识:const char *是指向常量字符串的指针). 在string类中,c_str()的生命周期受到string类实例的影响.如果我...
(小知识:const char *是指向常量字符串的指针). 在string类中,c_str()的生命周期受到string类实例的影响.如果我们使用string对象实例进行赋值,字符串被复制到一个char*的成员变量,然后在调用c_str()的时候,会直接返回string类中维护的char*成员的首地址.这样也就能保证了使用string和c_str()都能输出想要的...
在C++ 语言中的std::string类中 , 封装了一个c_str()成员函数 , 用于返回一个指向字符串内容的常量字符指针 ; 将string 转为 char* 类型 , 就需要调用c_str()成员函数 ; c_str()函数的原型如下 : 代码语言:javascript 复制 constchar*c_str()const; ...
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针 ...
const char* c_str() const; 1. c_str()函数 返回一个指向字符串内容的常量字符指针 , 该指针可以用于与C语言库函数进行交互 , 例如使用printf()函数打印字符串 ; 代码示例 : string s1 = "123456789"; // 将 string 转为 char* const char* s2 = s1.c_str(); ...
1.string类成员函数c_str()的原型:const char *c_str()const;//返回⼀个以null终⽌的c字符串 2.c_str()函数返回⼀个指向正规c字符串的指针,内容和string类的本⾝对象是⼀样的,通过string类的c_str()函数能够把string对象转换成c中的字符串的样式;3.操作c_str()函数的返回值时,只能使⽤c字符...