﻿#include <iostream>
using namespace std;


int hossz(char str[])
{
    int i = 0;
    while (str[i] != '\0')
        i++;
    return i;
}


/*
    3. Írjunk függvényt, amely egy karaktersort átmásol egy másik tömbbe.
*/
void masol(char hova[], char honnan[])
{
    int i = 0;
    while (honnan[i] != '\0') {
        hova[i] = honnan[i];
        i++;
    }
    hova[i] = '\0';
}


/*
    4. (HF) Írjunk függvényt, amely egy karaktersorhoz hozzáragaszt egy 
    másikat (összefűzés).
*/
void osszefuz(char a[], char b[])
{
    int i = 0;
    while (a[i] != '\0')
        i++;

    int j = 0;
    while (b[j] != '\0') {
        a[i] = b[j];
        i++;
        j++;
    }
    a[i] = '\0';
}


int hasonlit(char s1[], char s2[])
{
    int i = 0;
    while (s1[i] == s2[i] && s1[i] != '\0')
        i++;

    if (s1[i] > s2[i])
        return 1;
    else if (s1[i] == s2[i])
        return 0;
    else
        return -1;
}


int main()
{
    // másolás kipróbálása
    /*
    char a[] = "Hello, world!";
    char b[100];

    masol(b, a);

    cout << b << endl;
    */
   
    // összefűzés kipróbálása
    /*
    char a[100] = "pista";
    char b[100] = "bacsi";

    osszefuz(a,b);

    cout << a << endl; // pistabacsi
    */

    // 5. (HF) Adott stringből töröljük az 'a' betűket.
    /*
    int i = 0;
    while (a[i] != '\0') {
        if (a[i] == 'a') {
            for (int j = i; a[j] != '\0'; j++)
                a[j] = a[j+1];
        }
        else
            i++;
    }
    */

    // Másképp: két indexet használva egyszer járunk végig.
    /*
    int ir = 0, olvas = 0;
    while (a[olvas] != '\0') {
        if (a[olvas] != 'a') {
            a[ir] = a[olvas];
            ir++;
        }
        olvas++;
    }
    a[ir] = '\0';

    cout << a << endl;
    */


    /*
        Kis- és nagybetűk

        Adott egy string, alakítsuk minden betűjét nagybetűvé!
    */
    /*
    char s[100];
    cin.getline(s, 100);

    cout << s << endl;

    for (int i = 0; s[i] != '\0'; i++) {
        // ha (s[i] kisbetű) akkor
        //      s[i] <- nagybetű megfelelője s[i]-nek

        if (s[i] >= 'a' && s[i] <= 'z') {
            s[i] = s[i] + 'A' - 'a';
        }
    }

    cout << s << endl;
    */

    /* 
       Mivel az ASCII táblában a nagybetűk is és a
       kisbetűk is egy egy folytonos részben
       helyezkednek el, ezért át tudunk alakítani a
       kisbetűk és nagybetűk között egy-egy eltolással.

       Ha c egy kisbetű, akkor c+'A'-'a' az ő nagybetű
       megfelelője.

       Ha c egy nagybetű, akkor c+'a'-'A' az ő kisbetű
       megfelelője.
    */

    // Stringek összehasonlítása:

    char s1[100];
    cin.getline(s1,100);
    char s2[100];
    cin.getline(s2,100);

    int eredmeny = hasonlit(s1, s2);
        // az eredmeny legyen 0, ha egyenlőek,
        // -1 ha az első a kisebb és
        // +1 ha a második a kisebb

    if (eredmeny == 0) {
        cout << "egyenloek" << endl;
    }
    else if (eredmeny < 0) {
        cout << "az elso van elobb" << endl;
    }
    else
        cout << "a masodik van elobb" << endl;


    // HF: https://www.pbinfo.ro/probleme/11/vocale

    return 0;
}
