草庐IT

CHAR_BIT

全部标签

c++ - 为什么 const char* 强制转换为 std::string 有效?

这个Actor令我困惑:#include#include#includeusingnamespacestd;intmain(){stringstr1=(string)"Icastthisthing"+"--thenaddthis";cout有人可以解释为什么这种c风格的字符串转换有效(或被允许)吗?我将生成的优化程序集与来自:stringstr1=string("Iconstructthisthing")+"--thenaddthis";而且它们看起来是相同的,所以我觉得我忘记了一些实际上允许互换这种转换/构造的C++语义。std::stringstr2=std::string("Ic

c++ - 为什么 "greater than"不适用于 char 类型?

我正在OTB(一个C++库)中实现一个图像处理过滤器。我在进行一些非常基本的测试时出现了奇怪的行为。当我将图像读取为“char”时,以下代码始终输出像素值(在0-200范围内),即使它大于150。但是,当我使用“shortint”时它工作正常。“char”是否有特殊行为(例如字母比较而不是其数值)或者是否有任何其他原因?当然,我的图像像素是以字节存储的,所以我更喜欢处理“char”而不是“int”,因为图像非常大(>10Gb)。if(pixelvalue>150){out=255;}else{out=pixelvalue;} 最佳答案

c++ - 如何在 C++ 多平台中将 (char *) 从 ISO-8859-1 转换为 UTF-8?

我正在更改C++中的软件,以ISOLatin1格式处理文本,以将数据存储在SQLite的数据库中。问题是SQLite在UTF-8中工作...而使用相同数据库的Java模块在UTF-8中工作。我想有一种方法可以在将ISOLatin1字符存储到数据库之前将其转换为UTF-8字符。我需要它在Windows和Mac中工作。我听说ICU会这样做,但我认为它太臃肿了。对于这2个字符集,我只需要一个简单的转换系统(最好是来回转换)。我该怎么做? 最佳答案 ISO-8859-1被合并为ISO/IEC10646和Unicode的前256个代码点。所以

c++ - 返回 char1 + char2?不可能吗?

我正在尝试从函数返回一个字符串。这基本上是将一些字符加在一起并返回字符串表示形式。stringtoString(){charc1,c2,c3;//somecodeherereturnc1+c2;//Error:invalidconversionfrom`char'to`constchar*'}可以返回bool值,如returnc1=='x'。不能返回字符串值吗?我知道可以这样:stringresult;result.append(c1,c2);returnresult;我是C++的新手,所以我认为一定有更优雅的解决方案。 最佳答案

C++ char * 指针传递给函数并删除

我有以下代码:#includeusingnamespacestd;voidfunc(char*aString){char*tmpStr=newchar[100];cin.getline(tmpStr,100);delete[]aString;aString=tmpStr;}intmain(){char*str=newchar[100];cin.getline(str,100);cout为什么第二个cout不打印第二个输入字符串?我怎样才能更改此代码以使其正常工作? 最佳答案 正如GregS所说,简单的答案是使用引用来声明您的函数:v

c++ - 如何在 C++ 中获取 char 的整数值?

我想将存储在32位unsignedint中的值放入四个字符中,然后将每个字符的整数值存储在一个字符串中。我认为第一部分是这样的:chara=orig 最佳答案 如果你真的想先提取单个字节:unsignedchara=orig&0xff;unsignedcharb=(orig>>8)&0xff;unsignedcharc=(orig>>16)&0xff;unsignedchard=(orig>>24)&0xff;或者:unsignedchar*chars=(unsignedchar*)(&orig);unsignedchara=cha

c++ - char * (*arr)[2 ] 和 char **array[2] 有何不同?

char*(*arr)[2]和char**array[2]有何不同??如果我使用函数传递char*strings[2]那么如何从问题第一部分提到的两种方式访问​​元素?还请告诉其他访问指针数组元素的方法。谢谢。 最佳答案 CDecl报告:char*(*arr)[2]declarearraspointertoarray2ofpointertochar和char**arr[2]declarearrasarray2ofpointertopointertochar只是[]数组声明符的优先级高于*指针限定符,所以括号改变了含义。

c++ - Signed Char的目的是什么

如果char和signedchar的范围都是-127-127,那么signedchar的用途是什么?我们在什么地方使用signedchar而不是仅使用char? 最佳答案 unsignedchar是无符号的。signedchar已签名。char可能是未签名的或已签名的,具体取决于您的平台。当您确实需要签名时,请使用signedchar。可能相关:Whatdoesitmeanforachartobesigned? 关于c++-SignedChar的目的是什么,我们在StackOverflo

c++ - 如何在 C++ 中将字节类型的 char 数组数据保存到文件中?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我有一个char类型的array[100],其中存储了100个字节。我想把这个char类型的字节数组写入一个文件。我怎么能这样做?我不是写入.txt文件,而是其他格式。谢谢。

c++ - "Search words/strings in Matrix of Char"算法的复杂度

我的任务是从列表中搜索字母(20×20)单词(5)的网格。隐藏在网格中的任何单词总是以锯齿形段的形式出现,其长度可能只有2或3。锯齿形段只能从左到右或从下到上。所需的复杂度等于网格中字母数与列表中字母数的乘积。对于网格:••••••••••••••••••••••••••••ate•••••x••••••••••er•••••••e•••••••••it••••••••v•••••••ell••••••a••f••••••at••••e••••••rbg••••s•••••••ga•••••••和单词列表{"forward","iterate","phone","satellite"}