草庐IT

CHAR_LENGTH

全部标签

c++ - 如何使用 UTF-8 字符序列在 C++ 中初始化 const char* 和/或 const std::string?

如何使用UTF-8字符序列在C++中初始化constchar*和/或conststd::string?我正在使用接受UTF8字符串作为constchar*的正则表达式API。初始化代码应与平台无关。 最佳答案 这应该适用于任何编译器:constchar*twochars="\xe6\x97\xa5\xd1\x88"; 关于c++-如何使用UTF-8字符序列在C++中初始化constchar*和/或conststd::string?,我们在StackOverflow上找到一个类似的问题:

c++ - 将值从 char 指针复制到 char 数组

我有一个指针*ip_address_server保存服务器的ip地址:in_addr*address=(in_addr*)record->h_addr;char*ip_address_server=inet_ntoa(*address);很明显,当我使用printf打印它的值时,它打印得很好。printf("paddress%s",ip_address_server);但是现在如果我声明一个大小为20的数组来保存该值,那么我需要将内容从指针复制到该数组。charhost_name[20];为了复制我使用了for循环的值。但是我后来打印的值不是正确的值。for(inti=0;ip_add

c++ - 如何为一般情况编写流插入运算符? (也就是说,对于 `char` 和 `wchar_t` 流?)

我正在实现streaminsertionoperator对于我的一个类。我希望我的类(class)能够同时使用窄流和宽流。我正在使用一个模板来允许这种行为——除了字rune字之外,一切都与实际使用的流类型无关。如果它是一个宽字符串,则字rune字需要在文字前面加上L,否则不需要。有没有办法将这种东西键入模板参数,这样我就不需要在上面复制这么多代码?(如果可能,我宁愿避免在运行时执行窄到宽字符或宽到窄字符转换。)我目前拥有的示例——它是一个模板,但由于宽字rune字,它不适用于窄字符流:templatestd::basic_ostream&operator&lhs,constProces

c++ - std::string 和 char* 的特化函数模板

正如标题所说,我想为字符串和字符指针专门化一个函数模板,到目前为止我做了this但我无法弄清楚通过引用传递字符串参数。#include#includetemplatevoidxxx(Tparam){std::coutvoidxxx(char*param){std::coutvoidxxx(constchar*param){std::coutvoidxxx(conststd::string¶m){std::coutvoidxxx(std::stringparam){std::cout还有templatevoidxxx(conststd::string¶m)事情就是行不通。

c++ - 从 unsigned const char * 类型转换为 char const *

我想将unsignedconstchar*转换为charconst*以传递给strcpy函数请推荐一些方法 最佳答案 (constchar*)my_signed_char在C++中,有更多惯用的方法来转换它,但由于您使用的是strcpy,所以您似乎不是在编程惯用的C++。 关于c++-从unsignedconstchar*类型转换为charconst*,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

char 指针上的 C++ 错误

我想在结构中初始化一个char*字符串。这是结构:typedefstruct__String{char*data;//C-stringdata,unsigned*copyRef;//numberofcopyreference,deleteonlywhenthecopyRefis0boolisACopy;//thisbooleanistruewhen*dataisareftoanotherMyString__String(){data=0;isACopy=false;copyRef=newunsigned();*copyRef=0;return;}voidaddCopyRef(){*co

c++ - 从自定义 printf 函数返回 const char*

我编写了一个自定义打印函数。我的问题是我需要返回一个constchar*,因为它必须在另一个函数中使用。我根本不知道如何管理...anotherFunction(constchar*text/*Here*/,unsigned__int32value,unsigned__int64bigVal);我知道以下示例无法正常工作。这就是我到目前为止所尝试的。constchar*CatchMessage(constchar*message,...){va_listargs;va_start(args,message);/*?*/va_end(args);returnmessage;}我目前只设法

c++ - 类型为 "const char *"的值不能分配给类型为 "char"的实体 C OOP

我正在创建一个类来计算C++用户的成绩,我遇到了一个简单但烦人的问题。我知道这些错误是什么意思,但我不明白如何修复它,更改为字符串实际上可以解决问题,但这不是我想要做的。这里是错误:constchar*"cannotbeassignedtoanentityoftype"char代码#includeusingnamespacestd;classGradecalc{public:Gradecalc(){mark=0;}intgetmark(){returnmark;}voidsetmark(intinmark){mark=inmark;}voidcalcgrade(){if(mark>=7

c++ - visual studio 中涉及 void*、string 和 const char[] 的意外重载解析

我在visualstudio编译器(在VS2010和VS2012中测试)中遇到了以下意外的重载解析行为。最小的例子:#include#includevoidf(void*){std::cout输出:>f(void*)预期输出:>f(conststd::string&)用GCC编译(用4.6.3测试)生成预期的输出。如果我注释掉f()的“conststd::string&”版本,visualstudio会在没有任何警告的情况下愉快地在/W4上编译,而GCC会发出以下错误(如预期的那样):“来自'constvoid的无效转换*'到'void*'[-fpermissive]”。有谁知道为什么

c++ - 在 C++ 中有没有办法从不同的内存位置打印 char*?

我不确定这个问题是否有意义,所以我将尝试展示一个例子:想象一下,我在内存位置&s处有一个字符串(未以空值终止),在内存位置z处有另一个字符串(以空值终止)。chars[4];s[0]='a';s[1]='a';s[2]='a';s[3]='a';char*z=malloc(sizeof(char)*4);z[0]='a';z[1]='a';z[2]='a';z[3]='\0';char*y=malloc(sizeof(char)*4);y[0]='a';y[1]='a';y[2]='a';y[3]='\0';有没有办法表示字符串u,即s和z与另一个字符串的串联v,这是s和y的串联,而无