草庐IT

CHARACTER

全部标签

c++ - 字符串文字连接的正确行为(C++11 翻译的第 6 阶段)

我很确定VisualC++2015在这里有一个错误,但我不能100%确定。代码://Encoding:UTF-8withBOM(requiredbyVisualC++).#includeautomain()->int{autoconsts=L"""?isnotintheUnicodeBMP!";returns[0]>256?EXIT_SUCCESS:EXIT_FAILURE;}使用g++的结果:[H:\scratchpad\simple_text_io]>g++--version|find"++"g++(i686-win32-dwarf-rev1,BuiltbyMinGW-W64pro

c++ - 如何在 C 中创建多字节字符

在研究C和C++字符编码的过程中,我遇到了两种通用的编码方式:多字节字符和宽字符。为了加强我对那些系统(优点和缺点)的理解,我想做一些例子。由于wchar_t类型的native支持,使用宽字符做示例不是问题。但是当我想创建一个包含那些所谓的多字节字符的字符串时,我遇到了问题。我如何实际创建一个多字节字符串,该字符串使用与char数组一起使用的编码(使用VisualC++)?这种编码确实存在:http://www.gnu.org/software/libc/manual/html_node/Shift-State.html.但我只读过它,从未见过一个实际的例子。还是您必须为这种字符串创建

c++ - 专家的字符串和字符映射问题

这是一个让我难过的问题(明智的解决方案):给定一个strS,应用字符映射Cm={a=(m,o,p),d=(q,u),...}并使用C或C++打印出所有可能的组合。字符串可以是任意长度,字符映射的个数是变化的,不会有任何映射到另一个映射(从而避免循环依赖)。例如:字符串abba与映射a=(e,o),d=(g,h),b=(i)将打印:abba,ebba,obba,abbe,abbo,ebbe,ebbo,obbe,obbo,aiba,aiia,abia,eiba,eiia,...... 最佳答案 绝对有可能,并不难...但这肯定会生成很多

c++ - Boost Program_Options 抛出 "character conversion failed"

我在Ubuntu14.04上,使用CMake和CLion。我正在尝试使用程序选项,以下代码取自其文档中的示例:#include#includeintmain(intac,char*av[]){namespacepo=boost::program_options;usingnamespacestd;po::options_descriptiondesc("Allowedoptions");desc.add_options()("help","producehelpmessage")("compression",po::value(),"setcompressionlevel");po::

C++ 11:普通字符串文字和UTF-8字符串文字之间的区别示例?

Astringliteralthatdoesnotbeginwithanencoding-prefixisanordinarystringliteral,andisinitializedwiththegivencharacters.Astringliteralthatbeginswithu8,suchasu8"asdf",isaUTF-8stringliteralandisinitializedwiththegivencharactersasencodedinUTF-8.我不明白普通字符串文字和UTF-8字符串文字之间的区别。有人可以提供他们不同的情况的例子吗?(导致不同的编译器输出)

c++ - C++中的字符移位

我尝试编写一个函数来对字符进行简单的移动(向左或向右移动,具体取决于以下函数中的shift参数)。大写字母仍然是大写字母。这是我的方法:charencodeCaesarCipherChar(charch,intshift){charresult;if(!isalpha(ch))returnch;result=ch+shift;if(islower(ch)&&result'z'){result-=int('z');result+=int('a')-1;}elseif(isupper(ch)&&result'Z'){result-=int('Z');result+=int('A')-1;}

c++ - 如何避免为 int 变量输入 char?

下面的程序显示了一个“int”值被同时输入和输出。但是,当我输入一个字符时,它会进入一个无限循环,显示之前输入的“int”值。如何避免输入字符?#includeusingnamespacestd;intmain(){intn;while(n!=0){cin>>n;cout 最佳答案 无限循环的原因:cin进入失败状态,这使得它忽略对它的进一步调用,直到错误标志和缓冲区被重置。cin.clear();cin.ignore(100,'\n');//100-->askscintodiscard100charactersfromtheinp

c++ - 一个空的 C++ 文件有什么用?

翻译阶段2的第二部分(N3485中的第2.2.2节)基本上说如果源文件不以换行符结尾,编译器应该将其视为以换行符结尾。但是,如果我没看错的话,它会为空的源文件明确异常(exception),这些文件仍然是空的。准确的文本(加上重点)是:Eachinstanceofabackslashcharacter(\)immediatelyfollowedbyanew-linecharacterisdeleted,splicingphysicalsourcelinestoformlogicalsourcelines.Onlythelastbackslashonanyphysicalsourceli

c++ - C++ 对字 rune 字的顺序有什么保证?

C++对字rune字的顺序有什么保证?基本源字符集中的字符有明确的顺序吗?(例如'a'保证是真的吗?'A'怎么样?) 最佳答案 该标准仅保证十进制数字0到9的顺序,来自草案C++11标准部分2.3[lex.charset]:Inboththesourceandexecutionbasiccharactersets,thevalueofeachcharacterafter0intheabovelistofdecimaldigitsshallbeonegreaterthanthevalueoftheprevious.否则说(强调我的):

C++ 字符串操作

我缺乏C++经验,或者更确切地说,我在垃圾收集语言方面的早期学习,此刻真的很刺痛我,我在使用C++中处理字符串时遇到了问题。要说得很清楚,使用std::string或equlivents不是一个选项-这一直是char*的。所以:我需要做的非常简单,基本上可以归结为连接字符串。在运行时我有2个类。一个类包含基本文件名形式的“类型”信息。在标题中:char*mBaseName;后来,在.cpp中加载了从其他地方传入的信息。mBaseName=attributes->BaseName;第2类以基本文件名后缀的形式提供版本信息,它是一个静态类,目前是这样实现的:staticconstchar*