草庐IT

char_type

全部标签

c++ - 创建一个字符串如何改变 const char* 指向的值?

我编写了一个函数,它接受一个字符串并返回一个constchar*,其中包含该字符串的编码版本。我调用这个函数,然后创建一个新的字符串。这样做时,我无意中更改了指向我的constchar*的值,我认为这是不可能的。但是,当我不使用我自己的函数,而只是将一个值硬编码到我的constchar数组中时,当我创建一个字符串时该值不会改变。为什么这里有区别,为什么我仍然能够更改constchar数组的值?#include#include#include#include#includeusingnamespacestd;//returns"@username@FIN"constchar*encode

c++ - `reinterpret_cast<char*>(reinterpret_cast<uintptr_t>(&ch) + 1) == &ch +1` 有保证吗?

我正在编写与对齐相关的代码,如果给定的指针正确对齐,却没有标准的功能测试,这让我感到非常惊讶。似乎互联网上的大多数代码都使用(long)ptr或reinterpret_cast(ptr)测试对齐,我也使用了它们,但我想知道使用指向整数类型的强制转换指针是否符合标准。这里是否有任何系统触发断言?charch[2];assert(reinterpret_cast(reinterpret_cast(&ch[0])+1)==&ch[1]); 最佳答案 回答题目中的问题:没有。反例:在旧的Pr1me微型计算机上,一个普通指针是两个16位字。第

c++ - 为什么我不能在 struct 中初始化 char 数组

我尝试通过以下方式在结构声明中初始化一个char数组。但它无法编译并显示错误消息。请告诉我为什么它无法编译。#includestructA{constcharvalue_in_struct[]="a";//thislinegivesmeaerrormessage.};voidt(void){constcharvalue[]="a";//thislinewasokatcompilingstd::cout我从gcc收到以下错误消息。../static_constexpr_array.hpp:16:33:error:initializer-stringforarrayofcharsistoo

c++ - 前向声明 : incomplete type 'enums::Category' used in nested name specifier 有问题

我想要一个围绕枚举的包装器,这将使我有机会将其转换为字符串,反之亦然。基类如下:templateclassStringConvertedEnum{public:staticstd::stringtoString(TEnume);staticTEnumtoEnum(std::string&str);protected:staticconststd::map_stringMapping;staticconststd::map_enumMapping;};然后我想要这样的东西:classCategory:publicStringConvertedEnum{public:enumEnum{Ca

c++ - 为什么 C++ char 数据类型 3d array 当传递参数第一个括号为空时

请看下面的代码:#includeusingnamespacestd;intmain(){charmatrix[2][2][2];return0;}intgetMatrixData(charmatrix[][2][2],intx,inty,intz){returnmatrix[x][y][z];}矩阵3d数组作为参数传入函数时,为什么不指定第一个[]大小就可以了?如何解释这个缺失的维度? 最佳答案 您的代码在语法上不正确。假设您的意思是intgetMatrixData(charmatrix[][2][2],intx,inty,intz

C++ 在 ‘value_type’ 中没有名为 ‘struct std::iterator_traits<int>' 的类型

你好。我正在尝试运行以下代码(仅用于培训目的):#include#includetemplate>classkont>typenamestd::iterator_traits::value_typefoo_test(typenamekont::iteratorb){return*b;}templatetypenamestd::iterator_traits::value_typeminimum(Iterb,Itere){Iterm=b;/*CODE*/return*m;}intmain(void){std::listx;x.push_back(10);x.push_back(100);

web前端之解析xlsx文件、Excel表格转为JSON数据、script标签的type属性、使用webApi选择文件、单元格的地址索引、获取对象的长度、获取属性的数量、限制文件类型、动态添加类名

MENU前言效果公共html公共JavaScript(创建页面)通过JSON获取数据(中文模板)通过单元格坐标获取单元格地址索引(英文模板)通过地址索引获取单元格值(英文模板)XLSX包介绍动态添加类名script标签的type属性前言在日常开发中遇到批量导入(新增)的功能,此功能原先是后端收到前端上传的xlsx文件后进行解析再存入数据库。但是为了节省服务器资源与数据计算,需要前端解析好后传JSON数据给后端存入数据库。用户上传一个文件大概100~1024K,如果前端直接转成JSON数据可以减少很多数据传输量。效果公共html方式一引入xlsx包npminstallxlsx下载yarnaddx

c++ - 成员函数检测的递归type_traits

我正在尝试递归地应用type_traithas_fun以便C仅在T时启用其fun成员函数>有一个。有没有办法让C::fun被有条件地检测到?templatestructhas_fun{templateclasschecker;templatestaticstd::true_typetest(checker*);templatestaticstd::false_typetest(...);staticconstboolvalue=std::is_same(nullptr))>::value;};structA{voidfun(){std::coutstructC{voidfun(){st

c++ - 有没有一种方法可以将 container<T>::size_type 普遍用于不同类型的 T?

假设我有一个std::vectora的类(class)和std::vectorb我想要的字段reserve()在构造函数中设置为某种大小,这对于两个容器都是相等的。鉴于reserve()接受size_type参数,为了完全安全,据我所知,我必须使用两个参数编写我的构造函数,这并不是特别吸引人:MyCtor(std::vector::size_typesize1,std::vector::size_typesize2){abortIfNotEqual(size1,size2);//Proceedonlyifsize1==size2a.reserve(size1);b.reserve(si

c++ - const char * 与其他指针不同吗?

这个问题在这里已经有了答案:Whydoescoutprintchararraysdifferentlyfromotherarrays?(4个答案)关闭4年前。所以我最近一直在深入研究指针和引用,因为它们经常出现在我用来学习OpenGL的资源中。我注意到constchar*指针的行为似乎与其他指针有些不同。为了演示,我创建了这个测试程序:#includeintmain(){inti=2;int*pi;//constcharc="helloworld";constchar*pc="helloworld";pi=&i;std::cout输出:'helloworld'typeischarcon