给定一个包含字符串的文本文件“ file.txt” ,任务是按该文本文件中的字母顺序对所有字符串进行排序。
方法:想法是使用文件处理的概念和包含所有字符串的文本文件(例如file.txt )。步骤如下:
- 使用fopen()创建文件,然后使用fprintf()将名称插入文件。
- 使用fclose()关闭文件。
- 重新打开文件以读取名称。
- 使用fscanf()从文件中读取或扫描名称,并将其存储在字符串向量中。
- 使用sort()函数对存储在向量中的给定字符串进行排序。
- 现在,将排序后的字符串插入该文件并打印。
下面是上述方法的实现:
C++
// C++ program to sort given array
// of string stored in a file
#include
#include
#include
#include
using namespace std;
// Driver Code
int main()
{
int N, i, j;
// File pointer to open file
FILE* f;
// fopen() for creating of a file
f = fopen("file.txt", "w");
// Input number of strings
// to be inserted in file
cin >> n;
vector name(N);
// Insert the strings into file
for (i = 0; i < n; i++) {
// Insert names in file
cin >> name[i];
// Writing into the file
fprintf(f, "%s", name[i]);
}
// Close the file
fclose(f);
// Reopening in read mode
f = fopen("file.txt", "r");
// Check does file exist or not
if (f == NULL) {
cout << "File doesn't exist!";
return 0;
}
// Read the file until it
// encounters end of line
while (!feof(f)) {
fscanf(f, "%s", name[i]);
i++;
}
n = i - 1;
// Sort the strings
sort(name.begin(), name.end());
// Insert the strings into file
// after sorting
for (i = 0; i < n; i++) {
// Write into the file
fprintf(f, "%s", name[i]);
}
// Print the sorted names
for (i = 0; i < n; i++) {
cout << name[i] << '\n';
}
return 0;
}
输入文件:
输出文件:
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。