草庐IT

char_length

全部标签

c++ - 为什么字符串文字只能在某些情况下隐式转换为 char*?

这个问题在这里已经有了答案:Whyispassingastringliteralintoachar*argumentonlysometimesacompilererror?(6个回答)关闭9年前.voidf(char*p){}intmain(){f("Hello");//OKautop="Hello";f(p);//errorC2664:'voidf(char*)':cannotconvertparameter1//from'constchar*'to'char*'}代码使用VC++Nov2012CTP编译。§2.14.15StringLiterals,Section7Anarrows

c++ - 为什么字符串文字只能在某些情况下隐式转换为 char*?

这个问题在这里已经有了答案:Whyispassingastringliteralintoachar*argumentonlysometimesacompilererror?(6个回答)关闭9年前.voidf(char*p){}intmain(){f("Hello");//OKautop="Hello";f(p);//errorC2664:'voidf(char*)':cannotconvertparameter1//from'constchar*'to'char*'}代码使用VC++Nov2012CTP编译。§2.14.15StringLiterals,Section7Anarrows

java - 如何从 char 中减去字符 '0' 将其更改为 int?

此方法适用于C、C++和Java。我想知道它背后的科学原理。 最佳答案 char的值可以是0-255,其中不同的字符映射到这些值之一。数字也按'0'到'9'的顺序存储,但它们通常也不作为前十个char存储值(value)观。也就是说,字符'0'没有0的ASCII值。0的char值几乎总是\0空字符。在不了解ASCII的情况下,从任何其他数字字符中减去'0'字符将导致原始字符的char值非常简单。所以,这是简单的数学:'0'-'0'=0//Charvalueofcharacter0minuscharvalueofcharacter0/

java - 如何从 char 中减去字符 '0' 将其更改为 int?

此方法适用于C、C++和Java。我想知道它背后的科学原理。 最佳答案 char的值可以是0-255,其中不同的字符映射到这些值之一。数字也按'0'到'9'的顺序存储,但它们通常也不作为前十个char存储值(value)观。也就是说,字符'0'没有0的ASCII值。0的char值几乎总是\0空字符。在不了解ASCII的情况下,从任何其他数字字符中减去'0'字符将导致原始字符的char值非常简单。所以,这是简单的数学:'0'-'0'=0//Charvalueofcharacter0minuscharvalueofcharacter0/

c++ - g++ 将返回的字符串文字视为 const char 指针而不是 const char 数组

当从一个应该使用g++(版本4.7.3)执行隐式转换的函数返回字符串文字时,我看到了一些奇怪的行为。谁能解释为什么下面的代码:#includeclassTest{public:templateTest(constchar(&foo)[N]){printf("Templateconstchararrayconstructor\n");}Test(char*foo){printf("char*constructor\n");}};Testfn(){return"foo";}intmain(){Testt("bar");Testu=fn();return0;}产生结果:Templatecon

c++ - g++ 将返回的字符串文字视为 const char 指针而不是 const char 数组

当从一个应该使用g++(版本4.7.3)执行隐式转换的函数返回字符串文字时,我看到了一些奇怪的行为。谁能解释为什么下面的代码:#includeclassTest{public:templateTest(constchar(&foo)[N]){printf("Templateconstchararrayconstructor\n");}Test(char*foo){printf("char*constructor\n");}};Testfn(){return"foo";}intmain(){Testt("bar");Testu=fn();return0;}产生结果:Templatecon

c++ - C(和 C++)中 char 的对齐是否保证为 1?

这个问题在这里已经有了答案:Isthesizeofastructrequiredtobeanexactmultipleofthealignmentofthatstruct?(9个回答)关闭6年前。alignof(char)可以不是1吗?来自unofficialcppreference.comwiki:Theweakest(smallest)alignmentisthealignmentofthetypeschar,signedchar,andunsignedchar,anditisusually1.“通常”似乎暗示它可能是别的东西。C标准中关于char对齐的唯一规定是(C11N1570

c++ - C(和 C++)中 char 的对齐是否保证为 1?

这个问题在这里已经有了答案:Isthesizeofastructrequiredtobeanexactmultipleofthealignmentofthatstruct?(9个回答)关闭6年前。alignof(char)可以不是1吗?来自unofficialcppreference.comwiki:Theweakest(smallest)alignmentisthealignmentofthetypeschar,signedchar,andunsignedchar,anditisusually1.“通常”似乎暗示它可能是别的东西。C标准中关于char对齐的唯一规定是(C11N1570

游程编码(Run Length Coding)

游程编码游程编码基本介绍示例1示例2游程编码适用的场景游程编码游程编码(RunLengthCoding,简称RLC)又称游程编码、行程长度编码、变动长度编码等,是一种统计编码。主要技术是检测重复的比特或字符序列,并用它们的出现次数取而代之。比较适合于二值图像的编码,但是不适用于连续色调阁像的压缩,例如日常生活中的照片。为了达到较好的压缩效果,有时行程编码和其他一些编码方法混合使用。该编码属于无损压缩编码,是栅格数据压缩的重要编码方法。对于二值图有效。该压缩编码技术相当直观和经济,运算也相当简单,因此解压缩速度很快。RLE压缩编码尤其适用于计算机生成的图形图像,对减少存储容量很有效果。RLC的基

c++ - C++17 std::to_chars 是否添加了一个空终止符?

http://en.cppreference.com/w/cpp/utility/to_charsReference没有说明任何内容,但该示例(对我而言)显然使用了一个以null结尾的字符串,否则它怎么知道在哪里结束,因为std::array::data只返回一个指针。#include#include#includeintmain(){std::arraystr{};std::to_chars(str.data(),str.data()+str.size(),42);std::cout不幸的是,我无法自己测试它,因为AFAIK还没有编译器支持它:https://en.cpprefere