📜  对文本文件中的字符串进行排序

📅  最后修改于: 2021-09-06 06:34:07             🧑  作者: Mango

给定一个由字符串组成的文本文件“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 等的准备工作,请参阅完整的面试准备课程