C++程序 比较两个文件的路径
给定两个文件的路径,我们需要使用C++程序来比较这两个路径并检查它们是否相等或者大小关系。
输入:
path1 = "/a/b/c" , path2 = "/a/b/"
输出:
path1大于path2
几种方法:
使用内置的比较函数:
- 使用字符串作为数据类型来存储路径
- 使用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循环):
- 使用字符串作为数据类型来存储路径
- 使用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。
使用比较运算符:
- 要存储路径,请使用字符串作为数据类型
- 使用比较运算符(<,>,==)来比较两个路径。
句法:
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)