简单地说,如果输入总是在相同的情况下(这里是小写),并且如果字符总是ASCII,可以使用string :: compare来可靠地确定两个字符串的字母顺序吗?
因此,如果结果为0,则为stringA.compare(stringB)
,如果为负,则它们是相同的,stringA按字母顺序排在stringB之前,如果是正数,则stringA会在之后?
答案 0 :(得分:8)
根据cplusplus.com上的文档,
如果全部,则成员函数返回0 比较中的人物 内容比较相等,为负数 如果是第一个字符的值 不匹配比较少 对象比比较字符串, 和相反的正值 情况下。
因此它将按ASCII顺序对字符串进行排序,对于同一案例的英文字符串(没有变音符号或其他扩展字符)将按字母顺序排列。
答案 1 :(得分:3)
是的,只要两个字符串中的所有字符具有相同的大小写,并且只要两个字符串只包含字母,这都可以。
compare
是一个成员函数,所以你可以这样称呼它:
stringA.compare(stringB);
答案 2 :(得分:2)
在C ++中,string
是模板类basic_string
的实例化,其默认参数为:basic_string<char, char_traits<char>, allocator<char> >
。 basic_string
模板中的比较函数将使用char_traits<TChar>::compare
函数来确定结果值。
对于std::string
,排序将是实现(编译器)的默认字符代码的顺序,通常是ASCII顺序。如果您需要不同的顺序(假设您要将{a,á,à,â}视为等效),则可以使用自己的basic_string
实现来实例化char_traits<>
。提供不同的compare
函数指针。
答案 3 :(得分:0)
yes,
如果全部,则成员函数返回0 比较中的人物 内容比较相等,为负数 如果是第一个字符的值 不匹配比较少 对象比比较字符串, 和相反的正值 情况下。
对于字符串对象,a的结果 字符比较仅取决于 它的字符代码(即其ASCII码 代码),所以结果有限 按字母顺序或数字排序 含义。
答案 4 :(得分:0)
C和C ++语言的规范保证了词汇排序,'A'&lt; 'B'&lt; 'C'......&lt; 'Z'。对于小写也是如此。
文本数字的排序也得到保证:'0'&lt; ......&lt; '9'。
使用多种语言时,许多人会创建一个字符数组。搜索该数组的字符。不是比较字符,而是比较索引。