草庐IT

CHAR_LENGTH

全部标签

c++ - 指向 const char 与 char 数组与 std::string 的指针

这里有两行代码constchar*s1="test";chars2[]="test";两行代码具有相同的行为,所以我看不出我应该更喜欢s1而不是s2还是相反。除了s1和s2,还有使用std::string的方式。我认为使用std::string的方式是最优雅的。在查看其他代码时,我经常看到人们使用constchar*或chars[]。因此,我现在的问题是,什么时候应该使用constchar*s1或chars[]或std::string?有什么区别,在什么情况下我应该使用哪种方法? 最佳答案 POINTERS--------charc

c++ - 获取 char 的 ascii 值,C++ 中的 Ord 等价物

在delphi中存在一个名为Ord的函数which返回序号类型表达式的序号值。例如,您可以通过这种方式检索字符的Ascii值Ord('A')返回65Ord('a')返回97在C++中,我必须使用哪个函数来获取Char的ascii值? 最佳答案 一个简单的inta=c;应该可以工作,其中c是一个char。 关于c++-获取char的ascii值,C++中的Ord等价物,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

c++ - C++0x 中 char 和 Unicode 的符号

从C++0x工作草案开始,用于处理Unicode的新字符类型(char16_t和char32_t)将是无符号的(uint_least16_tuint_least32_t将是基础类型)。但据我所知(也许不是很远)没有定义类型char8_t(基于uint_least8_t)。为什么?当您看到为UTF-8字符串文字引入了新的u8编码前缀时,它更加令人困惑......基于老friend(有符号/无符号)char.为什么?更新:有人提议添加一个新类型:char8_tchar8_t:UTF-8字符和字符串的类型(修订版1)http://www.open-std.org/jtc1/sc22/wg21

r data.table和string_elt()错误:如何修复“字符矢量” vs'char'错误?

从r3.3更新到r3.4后,我在使用时有一个错误data.table包裹:STRING_ELT()canonlybeappliedtoa'charactervector',nota'char'有人经历过吗?我正在考虑降级以“修复”此操作。这是我的会话信息:>sessionInfo()Rversion3.4.0(2017-04-21)Platform:x86_64-pc-linux-gnu(64-bit)Runningunder:Ubuntu16.04.2LTSMatrixproducts:defaultBLAS:/usr/lib/libblas/libblas.so.3.6.0LAPACK:/

c++ - 在 CUDA 内核中使用 char 变量会受到惩罚吗?

我似乎记得得到提示,我应该尽量避免在CUDA内核中使用char,因为SM喜欢32位整数。使用它们会有一些速度损失吗?比如做起来是不是比较慢inta[4];intb=a[0]+a[1]+a[2]+a[3];a[1]=a[3];a2[0]=a[0]比chara[4];charb=a[0]+a[1]+a[2]+a[3];a[1]=a[3];a2[0]=a[0]在内核代码中?注意事项:我对使用char值进行算术运算、执行比较以及将它们读写到内存中的惩罚很感兴趣。 最佳答案 预先快速说明:在C/C++中,char的符号是实现定义的。当使用ch

c++ - 修改 C++ 字符串对象的底层 char 数组

我的代码是这样的:strings="abc";char*pc=const_cast(s.c_str());pc[1]='x';cout当我使用GCC编译上面的代码片段时,我得到了预期的结果"axc"。我的问题是,以这种方式修改C++字符串的底层char数组是否安全且可移植?或者可能有其他方法可以直接操作字符串的数据?仅供引用,我的目的是编写一些可以被C和C++调用的纯C函数,因此,它们只能接受char*作为参数。从char*到string,我知道涉及复制,惩罚是不利的。那么,任何人都可以提出一些建议来处理这种情况。 最佳答案 对于第

c++ - 重载运算符<<(unsigned char typedef as byte)

我想重载(劫持?)ostream和basic_ostream以便它停止尝试将八位字节(无符号字符)显示为可打印字符。我一直住在cout和friend们在屏幕上放笑脸的时间太长了。我厌倦了与Actor一起工作:hex.是否可以覆盖标准行为?我已经尝试过模板和非模板覆盖。它们编译,但似乎没有被调用。 最佳答案 问题是已经有一个templatestd::basic_ostream&operator&,charT);在namespacestd.自basic_ostream也在这个命名空间中,ADL在你输出unsignedchar时选择它.添

c++ - 是否可以从 C++ 中的模板类型获取 char* 名称

我想获取模板类型的字符串名称(constchar*)。很遗憾,我无法访问RTTI。templatestructSomeClass{constchar*GetClassName()const{return/*magicgoeshere*/;}}所以SomeClasssc;sc.GetClassName();//returns"int"这可能吗?我找不到办法,快要放弃了。感谢您的帮助。 最佳答案 不,它也不能可靠地与typeid一起工作。它将为您提供一些取决于编译器实现的内部字符串。int常见于“int”和“i”之类的东西.顺便说一句,

c++ - 如何将一系列数据从 char 数组复制到 vector 中?

我已将文件内容读入一个char数组,然后将其中的一些数据读入一个vector。如何将char数组的范围复制到vector中?vector和char数组都是同一类型(unsignedchar)。当前代码是这样的:intp=0;for(...){shortlen=(arr[p+1]我想通过使用push_back删除循环来改进这一点,怎么做? 最佳答案 可以使用insert()向vector添加内容。成员函数:vec.insert(vec.end(),arr,arr+len);当然,还有一个assign(),这可能更接近你想做的事情:ve

c++ - 为什么 `std::copy` 在我的测试程序中从 char 缓冲区读取一个 int 比 `memcpy` 慢 5 倍(!)?

这是thisquestion的后续行动我在哪里发布了这个程序:#include#include#include#include#include#include#include#include#includeclassStopwatch{public:typedefstd::chrono::high_resolution_clockClock;//!ConstructorstartsthestopwatchStopwatch():mStart(Clock::now()){}//!Returnselapsednumberofsecondsindecimalform.doubleelapse