草庐IT

unicode-string

全部标签

【C++】深度剖析string类的底层结构及其模拟实现

文章目录前言1.string的结构2.构造、析构2.1无参构造2.2带参构造2.3问题发现及修改c_stroperator[]析构2.4合二为一——全缺省3.拷贝构造3.1浅拷贝的默认拷贝构造3.2深拷贝拷贝构造的实现4.赋值重载4.1浅拷贝的默认赋值重载4.2深拷贝赋值重载的实现5.string对象的遍历5.1【】(const版本和非const版本)5.2迭代器模拟实现(普通)5.3const迭代器模拟实现6.常见关系运算符重载7.数据插入删除及扩容操作7.1reserve7.2push_back和append7.3+=7.4resize7.5insert7.6erase8.swap和fin

windows - 比较和排序 Unicode 文件名

为Unicode实用程序和界面使用Delphi2007和TMS组件(不能选择升级到Delphi2009以获得Unicode支持)。我将文件名列表存储在字符串列表(TTntStringList)中。它已排序且不区分大小写。默认排序例程使用CompareStringW(LOCALE_USER_DEFAULT,NORM_IGNORECASE,...)来比较字符串(对于Find也是如此)。然而,这是一个问题,因为这会将dummyss.txt等同于dummyß.txt(例如),但在NTFS上,将这两个文件放在同一文件夹中是完全合法的,即它们被视为不同的名称。我的理解是,在Vista和更新版本上,

c++ - 内部和外部编码与 Unicode

由于这个问题的评论中有几位发帖人散布了很多错误信息:C++ABIissueslist我创建这个是为了澄清。用于C风格字符串的编码是什么?Linux是否使用UTF-8编码字符串?外部编码与窄字符串和宽字符串使用的编码有何关系? 最佳答案 实现已定义。甚至应用程序定义;标准并没有真正对应用程序的用途施加任何限制他们,并期望很多行为取决于语言环境。全部真正实现定义的是字符串中使用的编码文字。在什么意义上。大多数操作系统会忽略大部分编码;你会如果'\0'不是空字节就会有问题,但即使是EBCDIC也能满足要求。否则,根据上下文,会有一些可能重

windows - 批处理 : Search for string to skip lines above and write results to new file

我已经成功地编写了一个脚本,它接受一个字符串来在特定文件中搜索,然后输出它第一次出现的行,然后我将该值放入for循环并跳过解析该行数并将其内容写入新文件。但是,我没有得到空行,我发现这些空行很难解决。我要搜索的字符串是“/]”,在它出现的地方缓存行号,然后用逗号分隔将它累积到一个变量中。然后我将该变量再次放入for循环中,并检索第一个出现的值作为我的最终“跳过此行数”变量,然后我在底部使用for循环再次读取该文件并将其值写入一个新文件并跳过文件开头的行数。下面是执行我上面描述的脚本的部分:setlocalenabledelayedexpansionsetlocalenableexten

Java - String.contains() 行为异常

这段代码在我的开发机器上运行良好(使用NetbeansIDE在VirtualBoxjre8上安装的Windows7),但在另一台机器上(Windows7jre8)总是返回true。它应该只查找名称为“town_house.html”的文件,而不是它总是为文件夹中的每个文件返回true。从提示符运行jar文件我没有得到任何异常。也许这只是我通常用C/C++编程的一个小错误……有什么想法吗?for(Filef:files){if(f.toString().contains("_")&&f.toString().contains(".html")){System.out.print("Pro

windows - Windows 中使用的默认 unicode 字符编码是什么?

Windows中使用的默认unicode字符编码是什么?特别是在Windows编程(Win32和WinRT)中。当我在WinAPI中编程时,“char”映射到1字节字符存储,“wchar_t”映射到2字节字符存储。如果UTF-16以4个字节对超过65536的所有字符进行编码,那么Windows如何将这些字符映射为“wchar_t”数据类型?我知道我的问题不够清楚,但我希望你能理解我的一些担忧。非常感谢! 最佳答案 Windows使用UTF-16LE对于所有Unicode(除了MultiByteToWideChar()和WideCha

windows - cmd 相当于 std::string::find_first:of

C++、Java、JavaScript和其他可能的编程语言都有一个字符串函数,可以在字符串中搜索指定字符串模式中的任何字符。例如,C++的std::string::find_first_of像这样工作:std::coutCMD中是否有任何等效项?我尝试搜索“dos字符串函数”,但似乎找不到任何内容。 最佳答案 没有直接的方法,但您可以很容易地编写自己的方法。搜索一个字符@echooffcall:charposition"Searchmeforvowels"aposechoFoundaatposition%pos%goto:eof:c

windows - 批处理文件中的 Unicode 字符

我需要为这个批处理文件使用字符映射中的大量字符。这是我正在使用的批处理文件的一部分:"C:\v2.vbs""C:\file.txt"火a有没有办法让cmd识别批处理文件中的火或任何其他非键盘字符?这个命令似乎只有在我不使用特殊字符时才有效。我还能使用什么来运行批处理文件并完成此操作? 最佳答案 如果这样"C:\v2.vbs""C:\file.txt"a表示“使用3个参数启动v2.vbs”,然后您可以将第二个参数编码为“&Habcd”(需要引号)并使用sC=ChrW(WScript.Arguments(1))v2.vbs.

windows - Emacs 在重新加载时不显示 Unicode

当我在文本文件中插入一个—(破折号)时,Emacs最初显示它很好。当我重新加载Emacs时,—的所有实例都显示为\342\200\224。如何让Emacs像最初那样显示字符?我正在使用Windows7和Emacs24.3.1。主要模式是“文本”,次要模式是“填充”。 最佳答案 尝试将其插入到您的初始文件中。它应该确保emacs将文件保存为Unicode(并在之后正确读取它们)。;;;;;;;;;;;;;;;;;;;;;;;setupunicode(prefer-coding-system'utf-8)(set-default-cod

Windows 批处理文件 : Convert Structures into Single Lines Strings

这个艰巨的任务我需要作为一个批处理文件来完成,它不是最难用C做的,但在DOS中是一个hell(至少对我来说!)我需要将一个结构转换为单个var(字符串)能够在我的程序中再次将它们转换为该结构。不要担心卷土重来,它已经完成了。该结构的大小会有所不同,并且在[0]内有一个索引,它需要成为我的var中的第一项。这里是这些结构的一个例子(只有3个):level.waypoints[0]=spawnstruct();level.waypoints[0].origin=(1774.5,834.7,67.6);level.waypoints[0].type="stand";level.waypoin