热将标准::__cxx11::字符串转换为标准::字符串

hot to convert std::__cxx11::string to std::string

本文关键字:字符串 标准 转换 cxx11      更新时间:2023-10-16

所以我只想将整数转换为数字并将其存储在数组中

例如

int n=456;
std::string nstr = std::to_string(n);
std::cout << nstr[0];

现在我只想要nstr的长度...

每当我使用std::strlen(nstr)时;

它给出一个错误

**error: cannot convert 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to 'const char*'**

请告诉我如何将std::__cxx11::string转换为std::string

或者有没有其他方法来计算nstr的长度

热将 std::__cxx11:::字符串转换为 std::string

std::__cxx11::string是您使用的标准库实现中的std::string(名称(。

std::string不能传递给std::strlen,因为它需要const char*参数,如错误消息中所述。

或者有没有其他方法可以计算 NSTR 的长度

通常,应使用size成员函数。但是不涉及计算。大小是在创建字符串时计算的,然后存储在字符串对象中。

如果你真的,真的,真的想使用strlen(),你必须转换为char*

std::strlen(nstr.c_str());

但通常你只会问字符串的大小:

nstr.size();

我能想到您可能更喜欢strlen()的唯一原因是,如果您的字符串中嵌入了 null,并且您想在那里停止计数。