С клавиатуры через пробел вводится: строка str1, знак операции < > == >= <= != , строка str2.
Проверьте истинность неравенства/равенства.
Написал код, но не знаю как довести до ума. Если кто-нибудь знает, помогите)) Спасибо!
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
class String{
size_t len;
char *str;
public:
String (): len(0), str(nullptr){}
String(const String&src);
String(const char *str);
~String() { delete[] str; }
size_t length() const { return len; }
bool operator <(const String&s);
bool operator >(const String&s);
bool operator ==(const String&s);
bool operator <=(const String&s);
bool operator >=(const String&s);
bool operator !=(const String&s);
friend istream &operator >>(istream &in, String &s);
friend ostream &operator <<(ostream &out, const String s);
};
String::String(const String &src){
len = src.len;
this->str = new char[len+1];
strncpy(str, src.str, len);
}
String::String(const char*s){
len = strlen(s);
str = new char[len+1];
strncpy(str, s, len);
}
bool String::operator ==(const String &s){
return strncmp(str, s.str, len)== 0;
}
bool String::operator <=(const String &s){
return *this == s.str || *this < s.str;
}
bool String::operator >=(const String &s){
return *this == s.str || *this > s.str;
}
bool String::operator !=(const String &s){
return !strncmp(str, s.str, len);
}
bool String::operator <(const String &s){
return strncmp(str, s.str, len) < 0;
}
bool String::operator >(const String &s){
return strncmp(str, s.str, len) > 0;
}
istream &operator >>(istream &in, String &s){
char *buf = new char[100001];
in.getline(buf, 100000);
delete [] s.str;
s.len = strlen(buf);
s.str = new char[s.len+1];
for(unsigned int i = 0; i < s.len; ++i)
s.str[i] = buf[i];
delete [] buf;
return in;
}
ostream &operator <<(ostream &out, String s){
for (unsigned int i = 0; i < s.len; ++i)
out << s.str[i];
return out;
}
int main(){
String a, b;
char s;
cin >> a >> s >> b;
if(s == ">")
cout << (a > b? "YES": "NO");
else if(s == ">=")
cout << (a >= b? "YES": "NO");
else if(s == "<")
cout << (a < b? "YES": "NO");
else if(s == "<=")
cout << (a <= b? "YES": "NO");
else if(s == "==")
cout <<(a == b? "YES": "NO");
else if(s == "!=")
cout <<(a != b? "YES": "NO");
return 0;
}
Если я правильно понял, вы хотите следующие. Человек вводит первое число, вводит оператор (больше, меньше и тд) и второе число. Вы хотите отловить эти числа и оператор и вывести на экран информацию а-ля, 10 больше 9.. 10 равен 10 и тд... Такое реализуемо как пример таким методом. Написал на скорую руку, думаю код сам за себя говорит.
// Example program
#include <iostream>
#include <string>
int main()
{
std::string str1;
std::string str2;
std::string str3;
getline (std::cin, str1);
getline (std::cin, str2);
getline (std::cin, str3);
if(str2.compare("==") == 0)
{
if(str1.compare(str3) == 0)
{
std::cout << "True";
}else{
std::cout << "False";
}
}else{
std::cout << "Wrong Compare";
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно с помощью кода C++ изменить размер консоли, но как именно это сделать не имею представления, в интернете нашёл что-то system ("mode con cols=x lines=y");Но...
Имеются различные символы, и нужно выводить их в консолиНапример хочу вывести ─╔══╗╔══╦═══╦═══╦но вместо этих символов в консоли...
У меня программа зависает когда я пытаюсь вывести окно qmlArcGis я установил
Посоветуйте библиотеку для создания примитивного окна загрузки приложения