在C++中使用运算符重载比较哪个字符串更大
Compare which string is greater using Operator overloading in C++
我正在尝试使用运算符重载进行字符串比较,我正在使用>运算符,我没有得到正确的输出,你能告诉我我在这里犯的错误是我的代码吗
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
class strclass
{
public:
char s1[20];
void getdata()
{
cin>>s1;
}
void showdata()
{
cout<<s1;
}
int operator>(strclass obj)
{
int temp,temp1;
temp=strlen(s1);
temp1=strlen(obj.s1);
if(temp>temp1)
{
return 1;
}
else
return 0;
}
};
void main()
{
clrscr();
strclass obj1,obj2;
int temp3;
if(obj1>obj2)
{
cout<<"string 1 is greater";
}
else
{
cout<<"string 2 is greater";
}
cout<<"enter string 1"<<endl;
obj1.getdata();
// obj1.showdata();
cout<<"enter string 2"<<endl;
obj2.getdata();
// obj2.showdata();
getch();
}
我正在使用基本的库函数。谢谢
- 在比较字符串之前,您需要先放入数据
- 运算符应返回一个int
- 对于具有公共s1成员的类,应该为
bool operator<(strclass s1, strclass s2)
形式的比较运算符使用一个自由函数,而不是成员函数,这样可以增加封装性
相关文章:
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 字符串比较中的意外输出
- 如何执行不区分大小写的字符串比较?
- 使用 getline(cin, var) 两次在进行字符串比较时会产生错误 (==)
- <<运算符优先级与字符串比较
- ">"运算符和"<"运算符如何进行字符串比较?
- Qt C++11 字符串通过子字符串比较列出交集
- std::out_of_range字符串比较中的异常
- 我正在尝试从输入文件中读取,然后使用它们的子字符串比较字符串的特定部分
- 字符* 与uint8_t的字符串比较
- 用字符串 c++ 比较对向量的元素
- 使用循环进行词典字符串比较
- 如何为C++映射创建自己的字符串比较对象
- 不带比较()的字符串比较
- 与 IF 语句C++的字符串比较?
- 字符串比较在与变量一起使用时给出不同的输出
- 更快的字符串比较排序,用于唯一()
- C 字符串比较“祝您好运”&gt;“再见”
- C 奇怪的行为和字符串比较
- 子字符串与 std::memcmp 或字符串::比较的比较