首页 > 软件 > a.c_str()一个可不可以的用法?

a.c_str()一个可不可以的用法?

软件 2021-09-04

c++中c_str()用法,越详细越好。

应该这样用:

char c[20];

string s="1234";

strcpy(c,s.c_str());

这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作。

语法: const char *c_str();

c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。

注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针。

扩展资料:

关于上述用法种最好不要这样用

constchar*c;

std::strings="1234";

c=s.c_str();

std::cout<

s="abcd";

std::cout<

上面如果继续用c指针的话,导致的错误将是不可想象的,就如:1234变为abcd。

C++中,c_str()的用法

返回c风格的字符串。 如: #include const string str="abc"; const char *c=str.c_str(); cout<“.c_str()”的作用是什么?是不是把string转成char[ ]?你这个理解就错了。。。 这个函数的原型是: const value_type *c_str( ) const; 所以 该函数接口返回的 是一个 符合C规则的字符指针。。。 而且容易混淆的是 .c_str() 和 .data() 两个接口; 从C++标准上的解释来看,只有一点区别: c_str()返回的指针保证指向一个size() + 1长的空间,而且最后一个字符肯定 "\0 "; 而data返回的指针则保证指向一个size()长度的空间,有没有null-terminate不保证,可能有,可能没有,看库的实现了。 嗯。。。都是字符串里边的成员函数,你可以看看MSDN 里边的信息。。。 祝你好运了

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

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试试

if(strcmp(a[i].c_str(),a[j].c_str())>0)中的c_str()是做什么用的?

std::string::c_str();是string的成员函数,返回字符串的常指针,也就是string字符串的首地址。 string str1 = "asdf"; const char* str2 = "asdf"; strlen( str1.c_str() ); //你不能直接传个string,对吧? strlen( str2 ); //这样没问题

标签:c_str CC++ 编程 信息技术 c++

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved.