c++ - 如何在c++中实现变音符号?

标签 c++ visual-c++ diacritics

我需要帮助从也包含变音符号的 .txt 文件中获取单词。 (所以有些单词包含 ěščř 等。顺便说一句,如果有帮助的话,这是捷克语变音符号。) 我的函数获取我输入的单词,但它不会获取我在控制台中输入的包含变音符号的单词。 我想我必须在 Microsoft Visual c++ 2010 中设置一些内容,但我不确定设置什么以及在哪里设置。万一我错了,有这个功能。

bool find(char typedword[50])
{
  bool found = false;
  char * word = new char [50];
  fstream dictionary;
  dictionary.open("Dictionary.txt", ios::in);
  while (dictionary >> word)
  {
    if (strcmp(typedword, word) == 0)
    {
        found = true;
        break;
    }

  }
  dictionary.close();
  if (found == true)
      return true;
  else
      return false;
}

感谢您的帮助!

最佳答案

您需要区域设置支持,以便组合字符序列和复合等效序列比较相等。

可移植的方法是setlocale并使用strcoll而不是strcmp

Windows 方式是使用 CompareStringEx(自动使用操作系统区域设置)而不是 strcmpNormalizeString 也可能有帮助。

关于c++ - 如何在c++中实现变音符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26183434/

相关文章:

python - 静态/动态作用域、类型化、绑定(bind)

c++ - 有没有办法将一个文件包含到 C++ 中的所有项目文件中?

内联程序集错误 :- C2400: inline assembler syntax error in 'second operand' ; found 'newline' 中的编译器错误

c++ - 在 VC++ 中处理字符串的最佳实践?

json - GSON/JSON : Weird special char (umlaut) issue

c++ - 更新 map 值

c++ - 如何从数据集中读取特定的字符列

c++ - 如何正确比较存储在内存中的两个数组?

php - 将特殊字符(即元音变音)转换为最可能的 ascii 表示形式

java - 使用java清除html代码和重音符号中的字符串