草庐IT

char_sequence

全部标签

c++ - 为什么包含字符串文字的初始化程序对初始化 `char` 数组有效?

事实证明charc[]={"a"};在C++03中都是完全有效的。和C++11.我不希望它是,因为它是char的数组而不是charconst*,我希望大括号初始化器需要兼容为其每个“项目”键入。它有一个项目,这是一个charconst*而不是char。那么是什么让这个初始化有效呢?这样做有什么理由吗?类似地,charc[]={"aa"};会编译,并且打印c会导致输出"aa”。我会当然希望charc[]{"a"}在C++11中有效,但它不一样!同样,charc[]={'a'}在两者中都很明显,charc[]="a"也是如此。 最佳答案

c++ - 将 int 放入 char 数组中是否需要放置 new 合法?

由于C++别名规则,您不能随意将(一个int*)指向char数组,这似乎达成了一些共识。从另一个问题——Genericchar[]basedstorageandavoidingstrict-aliasingrelatedUB--似乎允许通过placementnew(重新)使用存储。alignas(int)charbuf[sizeof(int)];voidf(){//turnthememoryintoanint:(??)fromthePOVoftheabstractmachine!::new(buf)int;//isthisstrictlyrequired?(aside:it'sobvi

c++ - 将 int 放入 char 数组中是否需要放置 new 合法?

由于C++别名规则,您不能随意将(一个int*)指向char数组,这似乎达成了一些共识。从另一个问题——Genericchar[]basedstorageandavoidingstrict-aliasingrelatedUB--似乎允许通过placementnew(重新)使用存储。alignas(int)charbuf[sizeof(int)];voidf(){//turnthememoryintoanint:(??)fromthePOVoftheabstractmachine!::new(buf)int;//isthisstrictlyrequired?(aside:it'sobvi

C++将char数组传递给函数

我宁愿只使用字符串,但我们不应该这样做,因为老师讨厌它们并希望我们想办法避免它们。所以我考虑使用结构,但我们在书中并没有那么远,当我跳过时她讨厌它。所以我正在考虑这样做:#include#include#includeusingnamespacestd;voidmyfunc(char&);intmain(){charmyname[12];cout>myname;cout但这不起作用,我不知道为什么。 最佳答案 一种方法是这样做:voidmyfunc(char*myname1){strcpy(myname1,"Billy");}您还需

C++将char数组传递给函数

我宁愿只使用字符串,但我们不应该这样做,因为老师讨厌它们并希望我们想办法避免它们。所以我考虑使用结构,但我们在书中并没有那么远,当我跳过时她讨厌它。所以我正在考虑这样做:#include#include#includeusingnamespacestd;voidmyfunc(char&);intmain(){charmyname[12];cout>myname;cout但这不起作用,我不知道为什么。 最佳答案 一种方法是这样做:voidmyfunc(char*myname1){strcpy(myname1,"Billy");}您还需

c++ - 为什么从 char*** 到 char*const** 的转换无效?

根据N4606,4.5[conv.qual]第3段内容为AprvalueexpressionoftypeT1canbeconvertedtotypeT2ifthefollowingconditionsaresatisfied,wherecvijdenotesthecv-qualifiersinthecv-qualificationsignatureofTj:...Ifthecv1iandcv2iaredifferent,thenconstisineverycv2kfor0上面的最后一个项目符号表明以下转换失败。T1:pointerto/pointerto/pointerto/TT2:p

c++ - 为什么从 char*** 到 char*const** 的转换无效?

根据N4606,4.5[conv.qual]第3段内容为AprvalueexpressionoftypeT1canbeconvertedtotypeT2ifthefollowingconditionsaresatisfied,wherecvijdenotesthecv-qualifiersinthecv-qualificationsignatureofTj:...Ifthecv1iandcv2iaredifferent,thenconstisineverycv2kfor0上面的最后一个项目符号表明以下转换失败。T1:pointerto/pointerto/pointerto/TT2:p

c# - 在 c# 中将 int 添加到 char 以将其 ascii 值向上移动(就像在 c++ 中一样)

在c++中,这段代码可以工作:charc='a';intr=2;c+=r;这与c='c'的作用相同。如何在c#中做同样的事情? 最佳答案 在将其添加到c之前将其转换为charcharc='a';intr=2;c+=(char)r; 关于c#-在c#中将int添加到char以将其ascii值向上移动(就像在c++中一样),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1058321

c# - 在 c# 中将 int 添加到 char 以将其 ascii 值向上移动(就像在 c++ 中一样)

在c++中,这段代码可以工作:charc='a';intr=2;c+=r;这与c='c'的作用相同。如何在c#中做同样的事情? 最佳答案 在将其添加到c之前将其转换为charcharc='a';intr=2;c+=(char)r; 关于c#-在c#中将int添加到char以将其ascii值向上移动(就像在c++中一样),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1058321

c++ - 有一个 strlen 和一个 wcslen,但是否有类似 strlen<char> 或 strlen<wchar_t> 的模板函数?

有一个strlen和一个wcslen函数,但是有一个模板字符数组长度函数,所以你可以做一些类似strlen的事情或strlen?如果没有,那我想我会自己写。 最佳答案 你有std::string使用的char_traits助手。它提供char_traits::length和char_traits::length. 关于c++-有一个strlen和一个wcslen,但是否有类似strlen或strlen的模板函数?,我们在StackOverflow上找到一个类似的问题: