Ordina i caratteri di una stringa in C ++

Ordina i caratteri di una stringa in C ++
L'ordinamento di una stringa è considerata un'organizzazione in un ordine ascendente o decrescente, o qualsiasi ordine fornito in C ++, che non è altro che ottenere le stringhe indicate in un ordine appropriato o un determinato ordine può essere espresso in quanto le stringhe sono ordinate nell'accordo specificato dell'ordine. L'output di un programma di ordinamento è un ingresso riorganizzato o una permutazione di tale input. In C ++, ci sono diversi metodi per l'ordinamento delle stringhe implementando algoritmi di smistamento: ordinamento a bolle, ordinamento di inserimento, librerie STL, ecc. Questi metodi hanno ordinato i caratteri della stringa in ordini ascendenti o in calo.

Metodi di ordinamento della stringa e dei caratteri di una stringa in C++

Esistono varie strategie di smistamento disponibili per organizzare una stringa in un certo ordine. Tra questi ci sono:

Bolle Ord

Uno degli algoritmi di smistamento più semplici in C ++ è la bolle. Le stringhe vengono ordinate usando questo approccio confrontando le corde o i caratteri vicini nella stringa. Quindi, scambiarli nell'ordine fornito, che potrebbe essere disposto in ordine alfabetico in C++.

Ordinamento di inserzione

L'algoritmo di ordinamento di inserzione seleziona i caratteri uno alla volta e li inserisce nella posizione appropriata. Ogni iterazione del metodo di ordinamento di inserimento prende un carattere dall'elenco dato e lo inserisce nella sotto-corda ordinata. Il metodo prende il carattere e lo inserisce nella posizione giusta a seconda del valore ASCII durante l'ordinamento in ordine alfabetico.

Funzione libreria standard

Importando il file di intestazione nel nostro codice, possiamo utilizzare il metodo di ordinamento dalla libreria di modelli standard C ++. Rispetto alla creazione del codice, l'utilizzo di questo metodo integrato è più semplice e veloce.

Possiamo anche usare std :: sort () in c++. STD :: SORT () è una funzione STL (Standard Model Library) in C++. Il metodo accetta un inizio e un iteratore finale e, per impostazione predefinita, è organizzato in ordine crescente. Consegnando un'operazione di comparatore che restituisce un booleano, il metodo può essere utilizzato anche per l'ordinamento specifico.

Esempio 1

La funzione di ordinamento è uno dei modi più semplici per ordinare il carattere stringa. L'unica cosa richiesta è solo importare la libreria standard di C++. Il codice inizia con l'importazione dello standard "STDC++.Biblioteca H "nella sezione intestazione. La libreria contiene tutti i file della libreria standard. Lo "Spazio Namespal" è anche incluso nel codice.

Dopo la sezione dell'intestazione, abbiamo creato una funzione vuota come "mystring" e abbiamo superato una stringa di riferimento "SortStr" nel costruttore. Quindi, abbiamo invocato il metodo Sort () nella funzione "MyString". Il metodo Ordine () ha l'iteratore iniziale e l'iteratore finale, che ordina il carattere stringa in ordine crescente. La stringa ordinata verrà stampata tramite l'istruzione Cout.

Ora abbiamo la funzione principale in cui abbiamo dichiarato una stringa come "strval" e la inizializzata. La stringa "strval" viene passata nella funzione "mystring" per l'ordinamento della stringa data.

#includere
Utilizzo dello spazio dei nomi std;
void mystring (String & Sortstr)

Ordina (sortstr.inizio (), sortstr.FINE());
cout << SortStr;

int main ()

String strval = "ProgrammingLanguage";
MyString (Strval);
cout << "\n";
restituzione 0;

Il metodo Ordine () ha ordinato i caratteri della stringa in ordine crescente. Il risultato dei caratteri della stringa dell'ordine ascendente è mostrato nell'immagine.

Esempio2

Possiamo anche ordinare i caratteri della stringa o della stringa utilizzando il metodo STD :: Ordina, che è incluso nella libreria integrata C ++ . Il seguente codice ha due librerie, "iostream" e "algoritmo" nella sezione intestazione. Attraverso la libreria "Algoritmo" possiamo accedere al metodo STD :: Ordina.

Dopo la sezione di intestazione, abbiamo la funzione principale in cui abbiamo definito un array di stringhe come "colori" e la inizializzata con alcune parole. Quindi, dobbiamo definire una dimensione dell'array pari a "5" in un "arrsize" di intero del tipo di dati. Ora, utilizzando il metodo STD :: Ordina prende una matrice di "colori" e la dimensione dell'array come argomento per ordinare la stringa.

Esiste un'istruzione per loop nella prossima riga di codice, che itera il ciclo fino a quando la dimensione dell'array "5" per un array di stringa. L'istruzione Cout stamperà l'array ordinato in ordine crescente.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
String Colors [] = "rosa", "grigio", "giallo", "blu", "rosso";
int arrsize = 5;
std :: ordin (colori, colori + arrsize);
per (int a = 0; a < 5; a++)
cout<
restituzione 0;

L'output dalla stringa della funzione della libreria standard mostrata di seguito è ordinata in ordine alfabetico.

Esempio 3

Una strategia efficace sarebbe prima a notare che ci possono essere solo 26 caratteri distinti. Quindi, in un array di hash, possiamo archiviare il numero di occorrenze di ciascun personaggio da "a a" z."Cercheremo solo l'array hashed e subiremo i caratteri da" a "a" z "in quanto appaiono più volte nella stringa di input. Pertanto, per implementare il codice, abbiamo importato una libreria standard, "STDC++.h "che ci aiuta a ordinare l'array specificato.

Ora, abbiamo dichiarato i "caratteri" variabili con la parola chiave "const" e la inizializzata con il valore "26". Quindi, abbiamo una funzione chiamata "SortStr" che prende il riferimento di una stringa ordinata come "STRX". Nella funzione, abbiamo creato un array di hash come "Contea". Inizialmente, il conteggio dei caratteri iniziali viene inizializzato con zero. Dopo l'inizializzazione dell'array hash, abbiamo un'istruzione per loop che attraversa la stringa e incrementa il conteggio dei caratteri. Il primo indice dell'array hashed rappresenta il personaggio 'a'; Il secondo rappresenta "B", ecc.

Quindi, per la posizione del personaggio nel conteggio di un array di hash, abbiamo usato strx [i]-'a'. Abbiamo un ciclo nidificato per attraversare e confrontare il carattere attraverso la stringa. Se la variabile "J" nel ciclo è maggiore del carattere di conteggio nella variabile "I". L'array hash stringa attraverserà e stamperà i caratteri. Nelle ultime righe, abbiamo la funzione principale in cui abbiamo dichiarato e inizializzato la stringa per la funzione "mystring".

#includere
Utilizzo dello spazio dei nomi std;
const int caratteri = 26;
void SortStr (String & Strx)

int CountChar [caratteri] = 0;
per (int i = 0; iCountChar [strx [i]-'a'] ++;
per (int i = 0; iper (int j = 0; jcout << (char)('a'+i);

int main ()

string mystring = "welceldfriends";
Sortstr (mystring);
cout <<"\n";
restituzione 0;

Il risultato del carattere ordinato della stringa viene visualizzato sul seguente schermo terminale.

Esempio 4

Nella programmazione C ++, dobbiamo chiedere all'utente di fornire alcuni nomi per organizzare stringhe (nomi) in ordine alfabetico (stringhe). Quindi, come indicato nel codice seguente, ordinare queste stringhe di input o nomi in ordine alfabetico. Abbiamo l'algoritmo di smistamento delle bolle per questa illustrazione. Il codice ha la funzione principale in cui abbiamo definito un array di caratteri "allname" della dimensione dell'array "5" e valore di carattere di "10". Inoltre, abbiamo un altro array "nome" della stringa del tipo di dati e impostare il valore del carattere su "10".

Quindi, abbiamo definito una variabile di tipo intero "X" e "Y". L'array di caratteri sarà input dell'utente in questo codice. L'utente immetterà la stringa di nomi a cinque caratteri. Ora abbiamo dichiarazioni ad anello nidificato e nel blocco ad anello nidificato, abbiamo una condizione che utilizza la funzione "strcmp" per confrontare due stringhe. Dopo aver confrontato le stringhe, abbiamo invocato la funzione "strcpy" per scambiare i nomi della stringa. Di conseguenza, abbiamo l'ordine alfabetico ordinato dei nomi delle stringhe.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

Char Allname [5] [10], nome [10];
int x, y;
cout<<"Enter Names: ";
per (x = 0; x> allname [x];
per (x = 1; x<5; x++)

per (y = 1; y0)

strcpy (nome, allname [y-1]);
strcpy (allname [y-1], allname [y]);
strcpy (allname [y], nome);



cout<<"\nAlphabetical order of Names :\n";
per (x = 0; x<5; x++)
cout<cout<restituzione 0;

All'inizio, devi inserire cinque nomi casuali; Quindi, ordinerà i nomi delle stringhe in ordine alfabetico. I nomi delle stringhe ordinati risultanti in ordine alfabetico sono visualizzati di seguito.

Conclusione

Concludiamo che il carattere dell'ordinamento della stringa in C ++ è realizzato attraverso vari algoritmi di smistamento. Qui, esploriamo come ordinare una stringa in C ++ con alcuni esempi di ordinamento e come ordinare una stringa usando alcuni algoritmi di ordinamento. Tutte le implementazioni dei codici sono eseguite in Ubuntu 20.04 Utilizzo del compilatore G ++. Speriamo che questo articolo ti abbia aiutato a cogliere meglio l'approccio della costruzione di una funzione di ordinamento personalizzata per ordinare una serie di personaggi non ordinati e la sua implementazione in C++.