La stringa di errore C ++ è indefinita

La stringa di errore C ++ è indefinita
Quando eseguiamo un programma, ogni tanto otteniamo strani risultati invece dell'output desiderato. La stringa indefinita nella programmazione C ++ si riferisce a quando un programma non riesce a compilare, quando esegue errati, si arresta in modo anomalo o produce risultati inaccurati o quando fa esattamente ciò che il programmatore intende per caso. Si ritiene che abbia un errore di stringa non definito quando il risultato di un programma in esecuzione è incerto.

In questo articolo, risolveremo la stringa indefinita nei modi efficaci supportati dal linguaggio di programmazione C ++. Comprendere le eccezioni di stringa indefinita come programmatore C ++ è essenziale per la codifica efficace e le prestazioni del programma, in particolare quando i codici C ++ sono integrati con l'architettura di sistema.

L'approccio per correggere l'errore "stringa non è definito" in c++

Se sei nuovo nel linguaggio di programmazione C ++, è possibile che si verifichino errori come la stringa C ++ non è definita. In C ++, abbiamo due modi per risolvere l'errore per una stringa indefinita.

  1. Spazio dei nomi STD: Lo spazio dei nomi significa che utilizziamo lo spazio dei nomi. "STD" è un acronimo per lo standard. Di conseguenza, usiamo tutto nello spazio dei nomi "std". Dobbiamo utilizzare lo spazio dei nomi STD con la parola chiave utilizzata nella sezione intestazione per applicarlo all'intero file.
  2. std :: string: La definizione di C ++ include un metodo per rappresentare una serie di caratteri come oggetto di classe. Questa classe è conosciuta come std :: stringa. Poiché la variabile String è disponibile nello spazio dei nomi STD, quindi utilizziamo STD :: String ogni volta che dichiariamo la stringa nel codice. L'STD viene utilizzato con l'operatore di risoluzione dell'ambito nel linguaggio di programmazione C ++.

Esempio 1

Qui nel nostro primo esempio, mostreremo come il compilatore C ++ lancia un errore di stringa non è definito. All'inizio del nostro programma, abbiamo importato una biblioteca chiamata "iostream". L'iostream è un file di intestazione in C ++ che specifica una raccolta di funzioni di input e output standard. Contiene anche oggetti in streaming I/O come CIN, COUT, CLOG e così via. Il cout viene utilizzato per visualizzare l'output "Immettere il tuo nome".

Dopo questa riga, abbiamo il comando CIN che prende l'input dall'utente per la stringa "Namestr". Attraverso il comando Cout, l'uscita e l'ingresso verranno visualizzati. Il "return 0" utilizzato alla fine della funzione principale esegue correttamente la funzione.

#includere
int main ()

String Namestr;
cout << "Enter your name "NameStr;
cout << "Your Name : " << NameStr << endl;
restituzione 0;

È possibile notare che la compilazione del programma sopra fornisce un errore in questo modo e suggerisce anche il modo di dichiarare stringa nella funzione principale. Abbiamo un risultato inaspettato dall'esecuzione di cui sopra.

Esempio 2

Il programma di illustrazione sopra riportato lancia l'errore non definito della stringa. Ora, dobbiamo risolvere l'errore di stringa non definita usando STD dello spazio dei nomi nella sezione File di intestazione. Abbiamo incluso il file iostream nel programma c++. Sotto il file iostream, abbiamo incluso il file "namespace std" con la parola chiave "usando". Lo spazio dei nomi STD ci aiuterà a superare l'errore non definito della stringa. Quindi, abbiamo creato due spazi dei nomi "interi" e "doppio".

Nel blocco dello spazio dei nomi "intero", abbiamo dichiarato due variabili "A" e "b" di tipo intero e li hanno inizializzati con i valori numerici. Abbiamo fatto lo stesso nel blocco dello spazio dei nomi "doppio" ma il tipo utilizzato è doppio. Si noti che abbiamo definito variabili con gli stessi nomi "A" e "B" in entrambi gli spazi dei nomi. Questa è la proprietà dello spazio dei nomi che ci consente di dichiarare variabili e funzioni con lo stesso nome.

Quindi, abbiamo la funzione principale che accede alle variabili dello spazio dei nomi utilizzando l'operatore di risoluzione dell'ambito. Attraverso il comando Cout, visualizzeremo il valore della variabile "A" dallo spazio dei nomi "intero" e il valore della variabile "b" dallo spazio dei nomi "doppio".

#includere
Utilizzo dello spazio dei nomi std;
Intero dello spazio dei nomi

int a = 2;
int b = 8;

Doppio spazio dei nomi

doppio a = 1.888;
doppio b = 2.745;

int main ()
usando integer :: a;
usando doppio :: b;
cout << "a="<< a << endl;
cout << "b="<< b << endl;
cout << "Integer="<< Integer::a << endl;
cout << "Double="<< Double::b << endl;
restituzione 0;

Abbiamo ottenuto un risultato atteso utilizzando STD dello spazio dei nomi nella sezione file di intestazione del programma sopra.

Esempio 3:

Abbiamo un altro modo per sbarazzarci dell'errore non definito della stringa, che utilizza STD con l'operatore di risoluzione dell'ambito quando si definisce la variabile di tipo stringa. Nel programma seguente, abbiamo importato due file standard "iostream" e "stringa" che hanno compilato bene il codice. La funzione principale è definita e il corpo della funzione principale ha inizialmente il comando COUT STD con l'operatore di risoluzione dell'ambito. Viene utilizzato per visualizzare i dati di output.

Quindi, abbiamo usato STD con l'operatore di risoluzione dell'ambito per la variabile di stringa. Impedirà l'errore di stringa non definita nel programma. Il comando STD CIN otterrà il valore dall'utente e l'ultima riga ha il comando Cout STD che viene utilizzato per visualizzare i dati di output e i valori utilizzati per aver inserito.

#includere
#includere
int main ()

std :: cout reg_no;
std :: laurea;
std :: cout <<"Your Registartion Number is" << Reg_No << "and Your Degree is " << Degree << '\n';
restituzione 0;

L'approccio STD :: String impedisce l'errore che la stringa non è definita. Il risultato è mostrato sullo schermo della console di Ubuntu.

Esempio 4

Invece di usare STD con risoluzione dell'ambito con ogni variabile, funzione o comando; Possiamo includere l'STD con operatore di risoluzione dell'ambito definendolo nella sezione di intestazione con la parola chiave "usando". Come puoi vedere, dopo aver importato il file standard in C ++, abbiamo un'istruzione STD :: String con la parola chiave "usando" e anche alcune altre istruzioni STD richieste.

Quindi, abbiamo una funzione stringa e nel costruttore di questa funzione, abbiamo fornito il riferimento di stringa "& st". Nel blocco delle funzioni stringa, abbiamo definito un metodo "rbegin" per invertire la stringa e un metodo "Rend" per restituire l'estremità inversa della stringa specificata. Successivamente, abbiamo la funzione principale in cui la variabile stringa è definita e inizializzata.

#includere
#includere
#includere
usando std :: cout; usando std :: endl;
usando std :: string; usando std :: reverse;
String Revstr (String & St)
String Reverse (ST.rbegin (), st.rend ());
restituire il contrario;

int main ()
string mystring = "invertire la stringa";
cout << MyString << endl;
cout << RevStr(MyString) << endl;
restituzione 0;

Possiamo impedire anche l'errore non definito della stringa in questo modo. Non dobbiamo scrivere un'istruzione STD con ogni dichiarazione di stringa nel codice. Possiamo definirlo nella sezione di intestazione solo una volta. I risultati sono mostrati nella seguente immagine.

Conclusione

Ora, siamo venuti a sapere come eliminare l'errore non definito in c++. Abbiamo esaminato la probabile causa dell'errore con l'esempio in esecuzione nell'articolo. Abbiamo esaminato il programma che non utilizzava lo spazio dei nomi std e std :: string e determinato quanto siano importanti nel codice C ++. Questi approcci aiuteranno sicuramente i programmatori a evitare l'errore non definito.