C++ 从字符串转换为常量字符*+;尺寸(单位:英寸)&引用;操作人员
我正在阅读关于”操作符的文章,发现了一些奇怪的代码剪报,我不明白 我不明白从字符串“110011”到常量char*s,size\u t l的转换 我期待着这样的事情:C++ 从字符串转换为常量字符*+;尺寸(单位:英寸)&引用;操作人员,c++,c++11,C++,C++11,我正在阅读关于”操作符的文章,发现了一些奇怪的代码剪报,我不明白 我不明白从字符串“110011”到常量char*s,size\u t l的转换 我期待着这样的事情: int运算符“”\u b(const std::string){..}或 int运算符“”\u b(const char*s){..} userliteral.cpp ... int operator "" _b (const char * s, size_t l) { int decimal {0}; ...
int运算符“”\u b(const std::string){..}
或
int运算符“”\u b(const char*s){..}
userliteral.cpp
...
int operator "" _b (const char * s, size_t l)
{
int decimal {0};
...//conversion
return decimal;
}
int bin2dez01 = "110011"_b; //<--- string "110011" to const char *s, size_t l ??????
std::cout << bin2dez01 << "\n";
main.cpp
...
int operator "" _b (const char * s, size_t l)
{
int decimal {0};
...//conversion
return decimal;
}
int bin2dez01 = "110011"_b; //<--- string "110011" to const char *s, size_t l ??????
std::cout << bin2dez01 << "\n";
int bin2dez01=“110011”\u b// operator”“
将程序源中的字符串文字转换为另一种类型,在这种情况下,int
基于解析二进制数的字符串表示形式
C++中字符串字的类型是 const char */COD>——一个指向字符串的内容的“代码> char < /Cord>”数组的常量指针。您还可以得到一个size\u t
,它告诉您字符串的长度,因为您无法仅从指针判断
(C和C++中的字符串标准是把空字节<代码> 0 标记字符串的结尾,但发现这不是免费的,有时它们被错误地忽略掉,所以指针和长度的传递总是比较容易的。
标准字符串类std::string
可以从字符串文本构建,但与C#和Java等语言不同,它们绝对不是同一类型。您经常会产生错觉,因为std::string
具有各种转换运算符和重载,允许您以您期望的方式或多或少无缝地处理字符串文本
总之,没有进行转换-字符串文字实际上是一个
const char*
,而size\u t
告诉您它有多长。确切地说,字符串文字的类型是const char[N],其中N是字符串的大小,以执行狭义编码的代码单元为单位,包括空终止符。这很重要,因为它允许使用大小创建std::string,即不通过查找空字符来计算长度。