草庐IT

hex_char

全部标签

c++ - 如何将 ASCII char 转换为其 ASCII int 值?

我想将一个字符转换成它的ASCII整数值。我可以用所有可能的值填充一个数组并与之比较,但我觉得这不对。我想要类似的东西charmychar="k"publicintASCItranslate(charc)returncASCItranslate(k)//>>Shouldreturn107asthatistheASCIIvalueof'k'.重点是atoi()在这里不起作用,因为它仅用于可读数字。它不会处理空格(ASCII32)。 最佳答案 只需这样做:int(k)这里只是将char直接转换为int,不需要函数调用。

c++ - 不允许从 'const char *' 到 'void *' 的 static_cast

在C++中,我试图打印C字符串的地址,但我的转换似乎存在一些问题。我从一本书中复制了代码,但它无法在我的Mac上编译。constchar*constword="hello";cout(word) 最佳答案 你正试图抛弃“常量”:word指向常量数据,但static_cast的结果不是指向常量数据的指针。static_cast不会让你那样做的。你应该使用static_cast相反。 关于c++-不允许从'constchar*'到'void*'的static_cast,我们在StackOve

c++ - 从 char* 缓冲区读取 int32_t 的惯用 cpp14 方法是什么?

给定一个包含int(小端)的字符缓冲区c。如何读作int32_t?我写了这段代码,但感觉不符合cpp的习惯。int32_tv;char*p=(char*)&v;for(inti=0;i 最佳答案 将binary数据从char*缓冲区复制到任何其他数据类型的唯一可移植方法是使用memcpy(或等效字节-copyingmerhodsuchasstd::copy或你自己的模仿这种行为的方法)。memcpy(&my_number,my_buffer,sizeof(my_number));当然,缓冲区应该包含给定数据类型的正确位。如果它源于在

c++ - 从 ‘void*’ 到 ‘unsigned char*’ 的无效转换

我有以下代码;void*buffer=operatornew(100);unsignedchar*etherhead=buffer;我在尝试编译时收到该行的以下错误;error:invalidconversionfrom‘void*’to‘unsignedchar*’为什么我会收到这个错误,我认为void是“无类型”的,所以它可以指向任何东西,或者任何东西都可以指向它? 最佳答案 您需要进行转换,因为如果不先进行转换,您无法将void*转换为任何内容。你需要做的unsignedchar*etherhead=(unsignedchar

c++ - 将 QByteArray 转换为 std::vector<unsigned char>

我尝试转换QByteArray至std::vector使用此代码:unsignedchar*buffer=(unsignedchar*)byteArrayBuffer.constData();std::vector::size_typesize=strlen((constchar*)buffer);std::vectorbufferToCompress(buffer,buffer+size);但是,假设byteArrayBuffer是QByteArray充满了数据,我认为它在线上效果不佳unsignedchar*buffer=(unsignedchar*)byteArrayBuffer

c++ - 无法修改 char* - 内存访问冲突

为什么说“内存访问冲突”?char*str="HelloGuys";intlen=strlen(str);for(inti=0;i 最佳答案 字符串文字存储在内存的只读部分。任何修改字符串文字内容的尝试都会调用未定义行为(大多数实现中的段错误)。而是使用字符数组charstr[]="HelloGuys"; 关于c++-无法修改char*-内存访问冲突,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

c++ - 如果图像文件的内容在 char 数组中,如何使用 cv::imdecode?

我在缓冲区jpegBuffer中有一个jpeg图像。我试图将它传递给cv::imdecode函数:MatmatrixJprg=imdecode(Mat(jpegBuffer),1);我收到这个错误:/home/richard/Desktop/richard/client/src/main.cc:108:error:nomatchingfunctionforcallto‘cv::Mat::Mat(char*&)’这是我填充jpegBuffer的方式:FILE*pFile;longlSize;char*jpegBuffer;pFile=fopen("img.jpg","rb");if(pF

c++ - 为什么 strrchr() 返回 `char*` 而不是 `const char*` ?

函数char*strrchr(constchar*str,intch)返回char*内的指针(str)(constchar*)最后一次出现ch的地方位于。所以我们可以写出下面的代码而无需任何转换:#includeintmain(){constcharCONSTSTR[]="foo/bar/foobar.txt";char*ptr=strrchr(CONSTSTR,'/');*ptr++='B';*ptr++='A';*ptr++='D';}返回有什么好处char*而不是constchar*?编辑:作为ShafikYaghmour指出,Howdoesstrchrimplementatio

c++ - char temp[3] =""; 是什么意思?

通常在C++中,字符数组的初始化方式如下,charexample[5]="cat";如果你用""(只是一个没有空格的双引号)初始化它会怎么样?初始化后字符数组中的元素是什么? 最佳答案 声明chartemp[3]="";与相同chartemp[3]={0};//`\0`asciivalueis0记住用0初始化的半初始化数组的剩余元素。要点:chartemp[3]=""容易键入(表示书写),因此它更可取。甚至将它与此声明进行比较chartemp[3]={'\0'};(它需要更多字符来type)而在chartemp[3]="";很简单(

mysql中char和varchar的区别

目录主要区别具体区别场景举例 优缺点主要区别char和varchar都是用于在数据库中存储字符串的数据类型。它们之间的主要区别在于存储空间的使用方式。char是一种定长的数据类型,它的长度固定且在存储时会自动在结尾添加空格来将字符串填满指定的长度。char的长度范围是0-255varchar是一种可变长度的数据类型,它只会存储实际的字符串内容,不会填充空格。因此,在存储短字符串时,varchar可以节省空间。varchar的长度范围是0-65535(MySQL5.0.3之后的版本)具体区别列类型存储方式存储空间性能默认填充CHAR固定长度的字符类型对于CHAR(n),n表示字符的最大长度。无论