草庐IT

d-char-sequence

全部标签

c++ - C++中string和char[]类型的区别

我知道一点C,现在我正在研究C++。我习惯用char数组来处理C字符串,但是当我查看C++代码时,我看到有使用字符串类型和char数组的示例:#include#includeusingnamespacestd;intmain(){stringmystr;cout和#includeusingnamespacestd;intmain(){charname[256],title[256];cout(来自http://www.cplusplus.com的两个示例)我想这是一个被广泛询问和回答(很明显?)的问题,但如果有人能告诉我在C++中处理字符串的两种方式(性能、API集成、方式每个都更好,

c++ - 在调用 std::numeric_limits<unsigned char> 成员之前,一元 "+"的目的是什么?

我看到了thisexampleincppreference'sdocumentationforstd::numeric_limits#include#includeintmain(){std::cout::lowest()::min()::max()::lowest()::min()::max()::lowest()::min()::max()::lowest()::min()::max()我不明白中的“+”运算符::lowest()我已经测试过了,用“-”替换它,这也有效。这样的“+”运算符有什么用? 最佳答案 输出运算符当通过c

c++ - 为什么从字符串常量到 'char*' 的转换在 C 中有效但在 C++ 中无效

C++11标准(ISO/IEC14882:2011)在§C.1.1中说:char*p="abc";//validinC,invalidinC++对于C++来说,这是可以的,因为指向字符串文字的指针是有害的,因为任何修改它的尝试都会导致崩溃。但为什么它在C中有效?C++11还说:char*p=(char*)"abc";//OK:castadded这意味着如果将强制转换添加到第一个语句中,它将变为有效。为什么强制转换使第二个语句在C++中有效,它与第一个语句有何不同?不还是有害吗?如果是这样,为什么标准说没问题? 最佳答案 在C++03

c++ - stringstream、string 和 char* 转换混淆

我的问题可以归结为,从stringstream.str().c_str()返回的字符串在哪里存在内存中,为什么不能将它分配给constchar*?这个代码示例将比我解释得更好#include#include#includeusingnamespacestd;intmain(){stringstreamss("thisisastring\n");stringstr(ss.str());constchar*cstr1=str.c_str();constchar*cstr2=ss.str().c_str();coutstringstream.str().c_str()可以分配给constch

C++ 弃用从字符串常量到 'char*' 的转换

我有一个带有privatecharstr[256];的类为此我有一个显式构造函数:explicitmyClass(constchar*func){strcpy(str,func);}我称之为:myClassobj("example");当我编译它时,我收到以下警告:deprecatedconversionfromstringconstantto'char*'为什么会这样? 最佳答案 这是您在遇到以下情况时看到的错误消息:char*pointer_to_nonconst="stringliteral";为什么?好吧,C和C++在字符串

c++ - 对静态 constexpr char[] 的 undefined reference

我想在我的类(class)中有一个staticconstchar数组。GCC提示并告诉我应该使用constexpr,尽管现在它告诉我这是一个undefinedreference。如果我使数组成为非成员,那么它会编译。怎么回事?//.hppstructfoo{voidbar();staticconstexprcharbaz[]="quz";};//.cppvoidfoo::bar(){std::stringstr(baz);//undefinedreferencetobaz} 最佳答案 添加到您的cpp文件中:constexprcha

c++ - 如何将char数组转换为字符串?

使用字符串的c_str函数然后执行strcpy将C++string转换为char数组非常简单。但是,如何做到相反呢?我有一个char数组,例如:chararr[]="Thisisatest";要转换回:stringstr="这是一个测试. 最佳答案 string类有一个构造函数,它接受一个以NULL结尾的C字符串:chararr[]="Thisisatest";stringstr(arr);//Youcanalsoassigndirectlytoastring.str="Thisisanotherstring";//orstr=ar

c++ - 将char数组初始化为字符串值,未初始化的索引是否设置为null?

如果我有以下情况:chartest[10]="#";test[1]到test[9]是否保证为\0?还是只有test[1]保证为\0? 最佳答案 这个定义chartest[10]="#";等价于chartest[10]={'#','\0'};即数组的两个元素由初始化器显式初始化。数组的所有其他元素将被初始化为零,这意味着它们将被隐式设置为'\0'根据C++标准(第8.5.2节字符数组)3Iftherearefewerinitializersthantherearearrayelements,eachelementnotexplicit

c++ - 将char数组初始化为字符串值,未初始化的索引是否设置为null?

如果我有以下情况:chartest[10]="#";test[1]到test[9]是否保证为\0?还是只有test[1]保证为\0? 最佳答案 这个定义chartest[10]="#";等价于chartest[10]={'#','\0'};即数组的两个元素由初始化器显式初始化。数组的所有其他元素将被初始化为零,这意味着它们将被隐式设置为'\0'根据C++标准(第8.5.2节字符数组)3Iftherearefewerinitializersthantherearearrayelements,eachelementnotexplicit

iphone - NSDictionary `description` 格式化问题 - 将结构视为 char 数据

我有一个自定义类(它在概念上类似于NSArray,并且希望是格式化​​的外观),它有一个description格式化程序。当格​​式化程序的输出本身被打印(NSLog)时,它看起来很好,但是当它作为NSDictionarydescription的元素包含时,NSDictionary格式化程序似乎决定它是一个字符串,不是结构定义,将其括在引号中,并转义字符串中的所有控制字符。当然,对于标准的NSArray,它不会这样做,所以我想知道它是如何决定以一种方式处理字符串而不是另一种方式的。例如,而不是输出看起来像:theChildren=({"@meta.type"="ns3:location