给定一个由字符串组成的文本文件“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++ 和C++ STL 课程,了解语言和 STL。要完成从学习语言到 DS Algo 等的准备工作,请参阅完整的面试准备课程。