递归比较字符串的函数-C ++

埃里克·奎瓦斯(Eric Cuevas)

我必须编写一个称为“关系”的函数来比较两个字符串。问题表明我仅限于使用C ++关系运算符比较单个字符。

这是我到目前为止的位置,但是我只是遇到错误。

char relation (const std::string& s1, const std::string& s2) {
    if(&s1[0] == "" || &s2[0] == ""){
        return '=';
    }
    else if(&s1[0] < &s2[0]){
        return '<';
    }
    else if(&s1[0] > &s2[0]){
        return '>';
    }
    else{
        std::string new_s1 = &s1.substr(1);
        std::string new_s2 = &s2.substr(1);
        return relation(s1,s2);
    }
}

当我运行它时,这些是我得到的错误。通过更改一些东西,我可以使其运行,但是我假设它进入了无限循环,因为它需要一段时间才能运行,并且会崩溃。

在此处输入图片说明 如果能得到一些帮助,我将不胜感激。

巴尔玛

没有理由占用所有地址。您应该使用s1[0],而不是&s1[0]

执行递归调用时,需要使用new_s1new_s2作为参数,而不是s1s2

您测试字符串是否为空的方法是错误的。s1[0]是一个char,而不是字符串,因此您不应将其与进行比较""您还报告=,如果任一字符串为空; 仅当两个字符串均为空时它们才相等

char relation (const std::string& s1, const std::string& s2) {
    if(s1[0] == '\0' && s2[0] == '\0'){
        return '=';
    }
    else if(s1[0] < s2[0]){
        return '<';
    }
    else if(s1[0] > s2[0]){
        return '>';
    }
    else{
        std::string new_s1 = s1.substr(1);
        std::string new_s2 = s2.substr(1);
        return relation(new_s1, new_s2);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通用C函数的字符串比较函数

来自分类Dev

递归函数以反向字符串C ++

来自分类Dev

字符串与C ++的比较

来自分类Dev

比较字符串,C ++

来自分类Dev

使用递归比较C中的2个字符串

来自分类Dev

比较c中的2个字符串递归

来自分类Dev

C中的Pascal样式字符串和C样式字符串在一个函数中进行比较

来自分类Dev

检查是否可以通过在C中联接较小的字符串(递归函数)来创建字符串

来自分类Dev

生成字符串的递归函数不包含两个相邻的相同子字符串C ++

来自分类Dev

C ++字符串递归substr

来自分类Dev

c:使用递归反转字符串?

来自分类Dev

字符串混搭(递归)C ++

来自分类Dev

有C函数可以将字符串与字符表进行比较吗?

来自分类Dev

C ++:字符串函数

来自分类Dev

如何在C中的递归函数中连接整数和字符串

来自分类Dev

递归函数将字符串转换为C中的整数

来自分类Dev

如何在C ++中使用递归char *函数反转字符串

来自分类Dev

需要打印“(空字符串)”的递归printLinkedList函数。在C中

来自分类Dev

如何使用 1 个递归函数反转字符串中的 Word(c-sharp)

来自分类Dev

字符串文字的C ++比较

来自分类Dev

将字符串与C比较

来自分类Dev

C strcmp中的字符串比较

来自分类Dev

在if语句中的c ++字符串比较

来自分类Dev

C:比较函数中的两个字符串时出现问题

来自分类Dev

验证人是否存在的函数[比较C中的字符串]

来自分类Dev

断言函数以比较C#中2种不同方法返回的字符串

来自分类Dev

C ++比较字符串最多为“%”个字符

来自分类Dev

C ++清理字符串函数

来自分类Dev

反向字符串函数C ++