如何将数组中的字符串转换为小写[关闭]
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
【讨论】:
以上是关于如何将数组中的字符串转换为小写[关闭]的主要内容,如果未能解决你的问题,请参考以下文章