Программа C++ для сравнения путей двух файлов

Опубликовано: 10 Января, 2023

Поскольку нам даны два пути к двум файлам, мы должны сравнить эти два пути и проверить, равны ли они, больше или меньше, используя программу на C++.

Вход:

path1 = "/a/b/c"    , path2 = "/a/b/"

Выход:

path1 is greater than path2

Подходы:

Использование встроенной функции сравнения:

  1. Для хранения путей используйте строку в качестве типа данных
  2. Используйте путь1. Compare( pathname2 ), чтобы сравнить два пути, это вернет три значения больше 0, меньше 0 или равно 0

Пример:

C++




// C++ Program to Compare Paths of Two Files
#include <iostream>
using namespace std;
 
// function to compare two paths
void pathCompare(string p1, string p2)
{
 
    // stores compared value 0 or >0 or <0
    const int res = p1.compare(p2);
    if (res > 0)
        cout << p1 << " is greater than " << p2;
    else if (res == 0)
        cout << p1 << " is equal to " << p2;
    else
        cout << p1 << " is less than " << p2;
    cout << " ";
}
 
// Driver code
int main()
{
    string p1 = "/a/b/c";
    string p2 = "/a/b/";
    string p3 = "/a/b";
    string p4 = "/a/b";
    string p5 = "/a/b";
    string p6 = "/a/b.";
    pathCompare(p1, p2); // function call
    pathCompare(p3, p4); // function call
    pathCompare(p5, p6); // function call
    return 0;
}

Использование итерации (цикл for и while):

  1. Для хранения путей используйте строку в качестве типа данных
  2. Используйте цикл for или while и сравните каждый символ из них один за другим.

Синтаксис:

while(path1[i] != "" || path2[i] != ""){
    //compare the character
    //increment value of i
}

OR

for(int i = 0; path1[i] != "" || path2[i] != ""; i++){
    //compare the character
}

Ниже приведена реализация вышеуказанного подхода:

Использование операторов сравнения:

  1. Для хранения путей используйте строку в качестве типа данных
  2. Используйте операторы сравнения (<, >, ==) для сравнения двух путей.

синтаксис:

if(path1 > path2)
    // path1 is greater
else if(path1 < path2)
    // path2 is greater
else
    // both paths are same

Пример: