草庐IT

CHAR_LENGTH

全部标签

C++ : Why I can't print a const char* with sprintf?

我在这里错过了什么?这让我抓狂!我有一个返回constchar*的函数constchar*Notation()const{chars[10];intx=5;sprintf(s,"%d",x);returns;}现在在代码的另一部分我正在这样做:..........charstr[50];sprintf(str,"%s",Notation());..........但str保持不变。如果我这样做:..........charstr[50];str[0]=0;strcat(str,Notation());..........str设置正确。我想知道为什么sprintf没有按预期工作...

c++ - 我很困惑! C++ 中的 Char、Char* 或 String

当我使用char或char*时,visualstudio2012(11)只计算最后一个字符,例如:#include#includeintmain(){usingnamespacestd;charchName='Alex';cout它只显示“x”。我用的是正确的字符串strName="Alex"但是在那些参数为字符的函数中,字符串不能作为参数传递。在这种情况下,VS编译器说字符串不能转换为int。还告诉我char和char*之间有什么区别。我是一名PHP开发人员,而C++是如此令人困惑。请帮助我。 最佳答案 char一次只能保留1个字

c++ - 我应该如何为 c 字符串 char 数组分配内存?

因此,在尝试学习如何在C++中使用C字符串时,我遇到了内存分配问题。这里的想法是创建一个格式为(s1+sep+s2)的新字符串我使用的文本提供了标题,所以我无法更改它,但我在尝试设置charstr[]的大小时遇到​​了问题。我收到一条错误消息,指出sLength不是常量,因此不能用于设置数组的大小。我对C++比较陌生,所以这是一个由两部分组成的问题。这个策略实际上是在为新数组分配内存吗?如果无法使用strlen(char*)获取常量值,如何正确设置数组大小?char*concatStrings(char*s1,char*s2,charsep){intsLength=strlen(s1)

c++ - 在 C++ 中,使用 bool 而不是 char 有什么意义?

sizeof(char)和sizeof(bool)都等于1(在我的编译器/系统/不管怎样,我听说它并不总是相同的值),bool只能存储true或false,而char可以取更多的值,并且可以使用按位运算符充当多个bool变量(8位,每个位可以用作1个bool,总共8个bool)那么使用bool代替char有什么优势吗?那么除了可读性之外还有别的吗?我在某处读到,即使占用更多内存,int的处理速度也比short或byte快。char和bool在速度上有什么区别吗? 最佳答案 使用bool的要点是表达意图。如果变量旨在存储具有true/

c++ - 双重标准?为什么只对 char* const& a = "bla"发出警告?

在尝试深入研究thisquestion等案例背后的机制之后暴露了,我仍然不明白为什么下面代码中的第三行只生成警告,而第二行是错误。intmain(){constchar*const&a="bla";//Validcodeconstchar*&a2="bla";//Invalidcodechar*const&a3="bla";//Shouldbeinvalidbutsettlesforawarningreturn0;}我知道虽然引用初始化正在将字符串文字转换为指针引用,但它不应该删除任何cv-qualifiers对象具有,并且由于转换后的类型是constchar*const(从字符串文字

c++ - 这行代码中的 `const char* yes[5]`代表什么?

我对C++中的typedef有疑问例如:typedefconstchar*yes[5];typedef是否给出了constchar*的替代名称,因此constchar*的替代名称是yes[5]?yes[5]这里代表什么?以及如何创建两个yes数组并初始化两者之一? 最佳答案 没有。这声明了一个yes类型,它是五个constchar*的数组。参见thislink并在文本区域内键入constchar*yes[5];。 关于c++-这行代码中的`constchar*yes[5]`代表什么?,我

C++ 函数返回 const char *

我为单元测试类开发了一个小辅助函数,它需要我的vector并将其转换回constchar*.我写这个是为了将它传递给gtest的ASSERT_STREQ用于简单比较的宏。在这里:constchar*convertVecToChar(std::vector&source){std::vector::size_typesize=source.size();char*data=(char*)malloc(sizeof(char)*(size+1));memcpy(data,&source[0],size);data[size]=0;returndata;}这是一个被调用的例子:ASSERT_

c++ - 通过引用传递 char 数组

我正在通过引用传递一个char数组,但是当我从函数返回并打印该数组时,它什么也不显示。我做错了什么?#includeusingnamespacestd;voidfunc(char[]);intmain(){chara[100];func(a);cout问候 最佳答案 你可能会做的是:voidfunc(char(&array)[10]){}转换为:通过引用传递10([10])个字符(char)的数组([..])((&..)). 关于c++-通过引用传递char数组,我们在StackOver

c++ - 为什么data()和c_str()返回的是char const*,而operator[]返回的是char&?

为什么std::string::data和std::string::c_str()返回指向const字符的指针,而std::string::operator[]返回对可变字符的引用?std::stringstring("eightfoldisthegreatest");autos=string.data();*s='r';//illegalautot=&string[0];*t='r';//totallyfineauto&c=string[0];c='r';//totallyfine为什么std::string::data()和std::string::c_str()不返回char*,

c++ - 为什么 char *A 能够保存字符串而 char A 不能?

我无法理解为什么字符指针能够保存字符串。不应该像字吗,只要能装一个字就可以了。 最佳答案 假定字符指针指向字符串的开头。指针本身指向字符串中的第一个字符,使用指针的代码假定字符串的其余部分在内存中跟随它,直到它到达\0。 关于c++-为什么char*A能够保存字符串而charA不能?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/19824045/