C++程序 比较两个文件的路径

C++程序 比较两个文件的路径

给定两个文件的路径,我们需要使用C++程序来比较这两个路径并检查它们是否相等或者大小关系。

输入:

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

输出:

path1大于path2

几种方法:

使用内置的比较函数:

  1. 使用字符串作为数据类型来存储路径
  2. 使用pathname1.Compare(pathname2),比较两个路径,将返回三个值:大于0、小于0或等于0

示例:

// 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 << "\n";
}
 
// 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;
}  

输出:

/a/b/c大于/a/b/
/a/b等于/a/b
/a/b小于/a/b.

使用迭代(for和while循环):

  1. 使用字符串作为数据类型来存储路径
  2. 使用for或while循环,逐个比较它们的每个字符。

语法:

while(path1[i] != '\0' || path2[i] != '\0'){
    //比较字符
    //增加i的值
}

OR

for(int i = 0; path1[i] != '\0' || path2[i] != '\0'; i++){
    //比较字符
}

下面是上述方法的实现:

// C++ Program to Compare Paths of Two Files
// 使用for循环
 
#include <iostream>
using namespace std;
 
// function to compare two paths
void pathCompare(string p1, string p2)
{
    // 使用for循环来比较路径
    for (int i = 0; p1[i] != '\0' || p2[i] != '\0'; i++) {
        // 比较字符
        if (p1[i] != p2[i]) {
            cout << p1 << "不等于" << p2 << endl;
            return;
        }
    }
    cout << p1 << "等于" << p2<< endl;
}
 
// 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;
}
 
// This code is contributed by Susobhan Akhuli
// C ++程序比较两个文件路径
//使用while循环
#include 
using namespace std;

//比较两个路径的函数
void pathCompare(string p1, string p2)
{
    int i = 0;
    //while循环比较路径
    while (p1[i] != '\0' || p2[i] != '\0') {
        //比较字符
        if (p1[i]!= p2[i]) {
            cout << p1 << "不等于" << p2 << endl;
            返回;
        }
        我++;
    }
    cout << p1 << "等于" << p2 << endl;
}

//驱动程序
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); //函数调用
    pathCompare(p3,p4); //函数调用
    pathCompare(p5,p6); //函数调用
    返回0;
}

//此代码由Susobhan Akhuli提供```  

输出

 /a / b / c不等于 /a / b /
/a/b等于 /a/b
/a/b不等于 /a/b。

使用比较运算符:

  1. 要存储路径,请使用字符串作为数据类型
  2. 使用比较运算符(<,>,==)来比较两个路径。

句法:

if(path1>path2)
    // path1更大
else if(path1 < path2)
    // path2更大
else
    //两条路径是相同的

示例:

// C ++程序比较两个文件路径
//使用if-else条件
#include 
using namespace std;

//比较两个路径的函数
void pathCompare(string p1, string p2)
{

///使用if-else进行比较
    如果(p1> p2)
        cout << p1 <<“大于”<< p2 << endl;
    否则(如果(p1 < p2))
        cout << p1 <<“小于”<< p2 << endl;
    别的
        cout << p1 <<“等于”<< p2 << endl;
}

//驱动程序
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); //函数调用
    pathCompare(p3,p4); //函数调用
    pathCompare(p5,p6); //函数调用
    返回0;
}

//此代码由Susobhan Akhuli提供```  

输出

 /a / b / c大于/ a / b /
/a/b等于 /a/b
/a/b小于/ a/b。

时间复杂度: O(1)

辅助空间 :O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例