Dado un archivo de texto “file.txt” que consta de strings, la tarea es ordenar todas las strings en orden alfabético en ese archivo de texto.
Enfoque: La idea es usar el concepto de manejo de archivos y un archivo de texto (por ejemplo, archivo.txt ) que contenga todas las strings. A continuación se muestran los pasos:
- Cree el archivo usando fopen() e inserte nombres en el archivo usando fprintf() .
- Cierra el archivo usando fclose() .
- Vuelva a abrir el archivo para leer los nombres.
- Lea o escanee los nombres del archivo usando fscanf() y guárdelo en un vector de strings .
- Ordene la string dada almacenada en el vector usando la función sort() .
- Ahora, inserte la string ordenada en ese archivo e imprímala.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to sort given array // of string stored in a file #include <bits/stdc++.h> #include <cstdlib> #include <cstring> #include <fstream> 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<int> 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; }
Fichero de entrada:
Archivo de salida:
Publicación traducida automáticamente
Artículo escrito por purnimasharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA