草庐IT

CHAR_LENGTH

全部标签

c++ - 将 lptstr 转换为 char*

有人知道如何在C++中将类型LPTSTR转换为char*吗? 最佳答案 取决于它是否显示为Unicode。如果不是Unicode,LPTSTR是char*,如果是,则为w_char*。Discussedbetterhere(接受的答案值得一读) 关于c++-将lptstr转换为char*,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/342772/

c++ - std::string 和 std::vector<char> 有什么区别?

那么主要区别是什么?在哪些情况下会用到它们? 最佳答案 vector向您保证&v[0]+n==&v[n]而字符串没有(实际上是这样,但不能保证)......AFAIKC++0x已经提供了这种保证constchar*没有隐式转换至vectorstring不是STL容器。例如,它没有pop_back()或back()功能最后但同样重要的是,不同的成员函数!String为您提供适合字符串的函数,例如用c_str()返回一个以null结尾的字符串底线:使用string当您需要使用字符串进行操作时。使用vector当你需要一个......好吧

c++ - const char* 与 char* (C++)

对于以下程序:intDivZero(int,int,int);intmain(){try{cout使用char*e会给出terminatecalledafterthrowinganinstanceof'charconst*'根据C++ExceptionHandling,解决方案是改用constchar*。进一步阅读function(constchar*)vs.function(char*)说过Thetypeof"String"ischar*',notconstchar*'(thisisaCdiscussionIthink...)关于堆栈溢出的补充阅读char*vsconstchar*a

c++ - CHAR_BIT 的更好名称?

我只是checkingananswer并意识到CHAR_BIT没有像我期望的那样由标题定义,甚至没有#include,在较新的GCC上。我真的需要#include只是为了获得CHAR_BIT的“功能”? 最佳答案 您可能知道,实现是否要包含其他header是未指定的。这是允许的,但不是强制性的。(§17.4.4.1)所以你要么必须明确,要么知道你的保证。C++头文件必须包含另一个头文件的唯一情况是它需要在另一个头文件中定义。例如,需要包含对于std::size_t,因为这在标准中明确说明。(对于这个例子,第23.3.5节)作为反例,

c++ - 在头文件中将值设置为 "const char *"是否合适

我见过人们使用2种方法来声明和定义char*。方法一:头文件如下externconstchar*COUNTRY_NAME_USA="USA";方法二:头文件有以下声明:externconstchar*COUNTRY_NAME_USA;cpp文件的定义如下:externconstchar*COUNTRY_NAME_USA="USA";方法1在某些方面是错误的吗?两者有什么区别?我了解"constchar*constvar"和"constchar*var"之间的区别。如果在上述方法中,如果像方法1一样在header中声明和定义“constchar*constvar”,是否有意义?

c++ - 使用长度和编码将 const char* 字符串转换为 NSString

我想知道哪种方法将constchar*字符串转换为NSString更好。我发现有一些事实。[NSStringstringWithCString:length:]有点被弃用了。[NSStringstringWithCString:encoding]可以用于我的目的但我想用长度和编码进行转换(因为如果我有一些非ASCII字符,我想通过将编码设置为UTF-8来做到这一点)。有什么想法吗?我现在才想使用std::strncpy(ch1,ch2,len)创建其他字符并按长度复制使用[NSStringstringWithCString:encoding:]但是效果不好。

c++ - 为什么 ostream 为定义为 `1` 的字符串打印 `volatile char[]` ?

这个问题在这里已经有了答案:Whydoesstd::coutconvertvolatilepointerstobool?(4个回答)关闭8年前。考虑这个(人工)示例:#include#includeintmain(){volatilechartest[]="abc";std::printf("%s\n",test);std::cout使用GCC编译并运行会得到以下输出:$g++test.cc$./a.outabc1如您所见,printf正确打印字符串,而cout打印1。为什么在这种情况下写入cout会产生1? 最佳答案 operat

c++ - 如何将 std::string_view 转换为 const char*?

使用带有-std=c++17标志的gcc-7.1编译,以下程序会引发错误:#includevoidfoo(constchar*cstr){}voidbar(std::string_viewstr){foo(str);}错误信息是Infunction'voidbar(std::string_view)':error:cannotconvert'std::string_view{akastd::basic_string_view}'to'constchar*'forargument'1'to'voidfoo(constchar*)'foo(str);我很惊讶没有转换为constchar*因

c++ - void* 或 char* 用于通用缓冲区表示?

我正在设计一个Buffer类,其目的是表示一block内存。我的底层缓冲区是char*(嗯,实际上是boost::shared_array,但这并不重要)。我一直在决定为我的构造函数选择什么原型(prototype):我应该去:Buffer(constvoid*buf,size_tbuflen);或与:Buffer(constchar*buf,size_tbuflen);还是别的什么?通常会做什么,为什么? 最佳答案 API接口(interface)对用户来说更加清晰,如果buffer是void*类型,而string是char*类型

c++ - 警告 : deprecated conversion from string constant to 'char*' '

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Howtogetridofdeprecatedconversionfromstringconstantto‘char*’warningsinGCC?我使用库中的以下函数,但我无法更改:HRESULTDynamicTag(char*pDesc,int*constpTag);我使用它如下。我已经创建了实现上述功能的库提供的类的对象。inttag=0;g_pCallback->DynamicTag("MyLogger",&tag);我收到以下警告:warning:deprecatedconversionfromst