如何将数组中的字符串转换为小写[关闭]

Posted

技术标签:

【中文标题】如何将数组中的字符串转换为小写[关闭]【英文标题】:How to convert a string in an array to lowercase [closed] 【发布时间】:2020-02-03 03:06:52 【问题描述】:

我有两个字符串数组,我试图比较它们中的字符串。但是,数组中的一个字符串的第一个字母大写,而另一个字符串则没有。有什么想法吗?

【问题讨论】:

向我们展示您的尝试。 使用 trasform 为完整的字符串制作大写字母。在比较之前将两个数组字符串都转换为大写。 std::string s("你好"); std::transform(s.begin(), s.end(), s.begin(), [](unsigned char c) -> unsigned char return std::toupper(c); ); 您应该进行一些最小的、完整的、可重现的尝试,包括测试输入和结果输出。 另外,请查看您可用的 std::string 方法...考虑 a) operator ==(s1, s2)(即 if (s1 == s2) ..when equal action .. and b) if(0 == compare(s1, s2)) .. when equal action.. “有什么想法吗?” -- 如果两个字符串的第一个字母不相同,则字符串不相等。也许您的要求没有被很好地理解?您是否错误地陈述了您的问题? 【参考方案1】:

我有两个字符串数组,我试图比较来自 他们。

您可以将std::equal 用于两个字符串,如下所示:

bool compareStrings(const string& a, const string& b)

    return std::equal(a.cbegin(), a.cend(),
                      b.cbegin(), b.cend(),
                      [](const auto& x, const auto& y) 
                          return std::tolower(x) == std::tolower(y);
                      );

如果你可以使用 boost,你可以这样做:

if (boost::iequals(a, b))

    // strings are same

【讨论】:

以上是关于如何将数组中的字符串转换为小写[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串转换为字节数组? [关闭]

如何将字符串转换为无符号字符数组 [关闭]

标准C语言中如何将字符串中的内容转换为字符数组?

C语言如何把一个字符串转换成数字

用数组的方式实现大小写英文字符串的密码转换,大写字母加4,小写字母减4,后面的再转回去,如W加密为A,X

给定一个字符串数组,将每个字符串转换为: 如果首字母是大写,则大写 如果首字母小,则小写