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

📅  最后修改于: 2021-05-31 17:01:36             🧑  作者: 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++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”