草庐IT

CHAR_BIT

全部标签

c++ - 在 C++ 中将 unsigned char 转换为 int

我有一个包含值的变量unsignedchar,例如40。我想要一个int变量来获取该值。最简单、最有效的方法是什么?非常感谢。 最佳答案 unsignedcharc=40;inti=c;大概你的问题肯定不止于此...... 关于c++-在C++中将unsignedchar转换为int,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10563642/

char* 上 memset 的 C++ 等价物

我有这个代码char*oldname=newchar[strlen(name)+1];memcpy(oldname,name,strlen(name)+1);name=newchar[strlen(oldname)+strlen(r.name)+1];memset(name,'\0',strlen(name));strcat(name,oldname);strcat(name,"");strcat(name,r.name);我明白使用memcpy和memset是不行的,但我还不明白如何在C++中使用它,最好不使用std。有人知道吗?谢谢。 最佳答案

c++ - 为什么我可以使用 const char* 作为 std::map<std::string, int> 中的键

我已经定义了一个数据结构std::mapa;我发现我可以像这样传递constchar*作为键:a["abc"]=1;哪个函数提供了从constchar*到std::string的自动类型转换? 最佳答案 std::string有一个constructorthatallowstheimplicitconversionfromconstchar*.basic_string(constCharT*s,constAllocator&alloc=Allocator());表示隐式转换,例如std::strings="Hello";是允许的。这

c++ - Delphi PChar 到 C++ const char*

我正在尝试使用native程序中的C++dll。我正在按照解释的虚拟方法场景here假设我的C++函数签名的形式是intSetup(constchar*szIp,constchar*szPort);而对应的delphi签名为functionSetup(ip,port:PChar):Integer:virtual;cdecl;abstract;我可以从delphi程序的某个地方调用pObj.Setup('192.168.1.100','97777');控件进入dll,但是szIp和szPort形参只接收我从delphi程序传过来的ip和port的第一个字符。我知道它与在delphi中正确

c++ - 如何将 std::string 与采用 char[] 缓冲区的 Win32 函数混合?

有许多Win32函数获取缓冲区的地址,例如TCHAR[256],并将一些数据写入该缓冲区。它可能小于缓冲区的大小,也可能是整个缓冲区。您通常会在循环中调用它,例如从流或管道中读取数据。最后,我想有效地返回一个字符串,该字符串具有来自所有迭代调用的完整数据以检索此数据。我一直在考虑使用std::string,因为它的+=以类似于Java或C#的StringBuffer.append()/StringBuilder.Append的方式进行了优化()方法,有利于速度而不是内存。但我不确定如何最好地将std::string与Win32函数混合在一起,因为这些函数以char[]开头。有什么建议吗

c++ - 获取 char 中的位数

如何获取类型char中的位数?我知道CHAR_BIT来自climits.这被描述为»宏产生用于表示char类型对象的位数的最大值。«在Dikumware'sCReference.我知道这意味着char中的位数,不是吗?我可以用std::numeric_limits得到相同的结果吗?不知何故?std::numeric_limits::digits返回7正确但不幸的是,因为这个值在这里尊重8位字符的符号...... 最佳答案 CHAR_BIT根据定义,是[signed/unsigned]char类型的对象表示中的位数.numeric_l

c++ - 将 vector<vector<char>> 转换为 vector<string>

我有一个std::vector>并想填写std::vector及其内容。我只是无法思考如何访问的内部vector并将字符放入字符串vector中。也许我错了,但我认为std::vector就像一个字符串。所以这应该不难做到,我只是被困在脑海中的某个地方。我看过这个:vectororvector>?但这并没有让我走得太远。感谢您的帮助。 最佳答案 这是一个算法版本std::vector>a;std::vectorb;std::transform(a.begin(),a.end(),std::back_inserter(b),[](st

c++ - char 文字的字符集是否保证为 ASCII?

来自讨论开始here,标准是否指定字符值?那么,'0'是否保证为48?这就是ASCII会告诉我们的内容,但可以保证吗?如果不是,您是否见过'0'不是48的编译器? 最佳答案 没有。不要求源字符集或执行字符集使用带有ASCII子集的编码。我还没有看到任何非ASCII实现,但我知道有人知道有人知道。(要求'0'-'9'具有连续的整数值,但这是SO上其他地方的重复问题。)用于源字符集的编码控制如何将源代码的字节解释为C++语言中使用的字符。该标准将执行字符集的成员描述为具有值。将这些字符映射到它们对应值的编码决定了'0'的整数值。虽然至少

c++ - char (*(*a[4])())[5] 是什么意思?

您好,我在“测试您的C++技能”中遇到了这个问题。请举例说明这是什么意思?已编辑部分:对于多余的括号,已编辑并删除。char(*(*a[4])())[5] 最佳答案 遵循螺旋规则(由chris链接),并从标识符开始:a……是……a[4]...一个4...的数组*a[4]...指向...的指针(*a[4])()...一个不带参数的函数...*(*a[4])()...返回指向...的指针(*(*a[4])())[5]...五个...的数组char(*(*a[4])())[5]...字符。旁注:去狠狠训斥提出这个问题的架构师,然后找到编写

c++ - static_assert 无法将 const char* 模板参数识别为 constexpr : g++ bug?

考虑以下定义。charright_string[]="::right_one.";charwrong_string[]="::wrong_one.";templatevoidf(){static_assert(str==::right_string,"Passme::right_string!");}structTest{staticconstexprcharright_string[]="template_struct::right_one";staticconstexprcharwrong_string[]="template_struct::wrong_one";template