Fix C ++ Fehlerzeichenfolge ist nicht definiert

Fix C ++ Fehlerzeichenfolge ist nicht definiert
Wenn wir ein Programm ausführen, erhalten wir gelegentlich seltsame Ergebnisse anstelle der gewünschten Ausgabe. Undefined String in C ++ - Programmierung bezieht sich darauf. Es wird angenommen.

In diesem Artikel werden wir die undefinierte Zeichenfolge auf effektive Weise lösen, die von der C ++ - Programmiersprache unterstützt werden. Das Verständnis undefinierter String -Ausnahmen als C ++ - Programmierer ist für eine effektive Codierung und Programmleistung von wesentlicher Bedeutung, insbesondere wenn C ++ - Codes in die Systemarchitektur integriert sind.

Der Ansatz zur Behebung des Fehlers „String ist undefiniert“ in C++

Wenn Sie neu in der C ++ - Programmiersprache sind, können Sie auf Fehler wie die C ++ - String undefined auf Fehler stoßen. In C ++ haben wir zwei Möglichkeiten, den Fehler für eine undefinierte Zeichenfolge aufzulösen.

  1. Namespace STD: Der Namespace STD bedeutet, dass wir den Namespace STD verwenden. "STD" ist ein Abkürzung für Standard. Infolgedessen verwenden wir alles im Namenspace „STD“. Wir müssen den Namespace STD mit dem im Abschnitt Header verwendeten Schlüsselwort verwenden, um es auf die gesamte Datei anzuwenden.
  2. std :: string: Die Definition von C ++ enthält eine Methode zur Darstellung einer Reihe von Zeichen als Klassenobjekt. Diese Klasse ist als Std :: String bekannt. Da die String -Variable im STD -Namespace verfügbar ist, verwenden wir STD :: String, wenn Sie die Zeichenfolge im Code deklarieren. Die STD wird mit dem Operator der Bereichsauflösung in der C ++ - Programmiersprache verwendet.

Beispiel 1

Hier in unserem ersten Beispiel zeigen wir, wie der C ++ - Compiler einen Fehlerfehler undefiniert macht. Zu Beginn unseres Programms haben wir eine Bibliothek namens "iOstream" importiert. Der iOstream ist eine Header -Datei in C ++, die eine Sammlung von Standardeingangs- und Ausgabefunktionen angibt. Es enthält auch E/A -Stream -Objekte wie Cin, Cout, Clog usw. Die Cout wird verwendet, um die Ausgabe "Geben Sie Ihren Namen ein" anzuzeigen.

Nach dieser Zeile haben wir den Befehl CIN, der die Eingabe vom Benutzer für die Zeichenfolge „Namestern“ entnimmt, die Eingabe vom Benutzer entnimmt. Durch den COUT -Befehl werden die Ausgabe und die Eingabe angezeigt. Die am Ende der Hauptfunktion verwendete "Rückgabe 0" führt die Funktion erfolgreich aus.

#enthalten
int main ()

String -Namestern;
Cout << "Enter your name "NameStr;
Cout << "Your Name : " << NameStr << endl;
Rückkehr 0;

Sie können beachten, dass die Zusammenstellung des obigen Programms auf diese Weise einen Fehler darstellt, und schlägt auch den Weg vor, die Zeichenfolge in der Hauptfunktion zu deklarieren. Wir haben ein unerwartetes Ergebnis aus der obigen Ausführung.

Beispiel 2

Das obige Illustrationsprogramm wirft den undefinierten Fehler der Zeichenfolge aus. Jetzt müssen wir den Fehler der String undefinierte Fehler durch den Namespace STD im Abschnitt Header -Datei beheben. Wir haben die iOstream -Datei in das Programm C aufgenommen++. Unterhalb der iOstream -Datei haben wir die Datei „Namespace STD“ mit dem Schlüsselwort „Verwenden“ aufgenommen. Der Namespace STD hilft uns, den undefinierten Fehler der Zeichenfolge zu überwinden. Dann haben wir zwei Namespaces "Integer" und "Double" erstellt.

Im Block des Namespace "Integer" haben wir zwei Variablen "A" und "B" der Typ Ganzzahl deklariert und sie mit den numerischen Werten initialisiert. Wir haben dasselbe im Block des "doppelten" Namespace getan, aber der verwendete Typ ist doppelt. Beachten Sie, dass wir Variablen mit den gleichen Namen "A" und "B" in beiden Namespaces definiert haben. Dies ist Eigentum des Namespace, der es uns ermöglicht, Variablen und Funktionen mit demselben Namen zu deklarieren.

Anschließend haben wir die Hauptfunktion, die auf die Variablen des Namespace zugreift, indem wir den Operator der Bereichsauflösung verwenden. Über den COUT -Befehl zeigen wir den Wert der Variablen „A“ aus dem Namespace „Ganzzahl“ und den Wert der Variablen „B“ aus dem "Doppel" -Namenspace.

#enthalten
Verwenden von Namespace STD;
Namespace Ganzzahl

int a = 2;
int b = 8;

Namespace Double

Doppel a = 1.888;
doppelte B = 2.745;

int main ()
Verwenden von Integer :: a;
DOUBLE :: B;
Cout << "a="<< a << endl;
Cout << "b="<< b << endl;
Cout << "Integer="<< Integer::a << endl;
Cout << "Double="<< Double::b << endl;
Rückkehr 0;

Wir haben ein erwartetes Ergebnis, indem wir im Abschnitt Header -Datei des oben genannten Programms einen Namespace STD verwendet haben.

Beispiel 3:

Wir haben eine andere Möglichkeit, den undefinierten Fehler der Zeichenfolge zu beseitigen, bei der STD mit dem Aperator der Bereichsauflösung verwendet wird, wenn die Variable der Typ -Zeichenfolge definiert wird. Im folgenden Programm haben wir zwei Standarddateien "iOstream" und "String" importiert, die den Code gut zusammengestellt haben. Die Hauptfunktion ist definiert und die Hauptfunktionskörper hat den Befehl STD Cout zunächst mit dem Operator der Bereichsauflösung. Es wird verwendet, um die Ausgabedaten anzuzeigen.

Anschließend haben wir STD mit dem Scope -Auflösungsoperator für die String -Variable verwendet. Es verhindert den im Programm undefinierten Fehler der String undefinierte. Der STD CIN -Befehl erhält den Wert vom Benutzer, und die letzte Zeile hat den STD -Cout -Befehl, mit dem die Ausgabedaten und Werte für die eingegebene Werte angezeigt werden.

#enthalten
#enthalten
int main ()

std :: cout reg_no;
std :: Cout -Abschluss;
std :: Cout <<"Your Registartion Number is" << Reg_No << "and Your Degree is " << Degree << '\n';
Rückkehr 0;

Der STD :: String -Ansatz verhindert den Fehler, dass die Zeichenfolge undefiniert ist. Das Ergebnis wird auf dem Konsolenbildschirm von Ubuntu angezeigt.

Beispiel 4

Anstatt STD mit Umfangsauflösung mit jeder Variablen, Funktion oder jedem Befehl zu verwenden; Wir können den STD mit dem Operator des Bereichsauflösungsbetriebs einbeziehen, indem wir ihn im Abschnitt Header mit dem Schlüsselwort „Verwenden“ definieren. Wie Sie sehen können, haben wir nach dem Importieren der Standarddatei in C ++ eine STD :: String -Anweisung mit dem Schlüsselwort „Verwenden“ und auch einigen anderen erforderlichen STD -Anweisungen.

Dann haben wir eine String -Funktion und im Konstruktor dieser Funktion haben wir die String -Referenz "& st" gegeben. Im String -Funktionsblock haben wir eine "rBegin" -Methode definiert, um die Zeichenfolge und eine "Rend" -Methode umzukehren, um das umgekehrte Ende der angegebenen Zeichenfolge zurückzugeben. Danach haben wir die Hauptfunktion, bei der die Zeichenfolgenvariable definiert und initialisiert wird.

#enthalten
#enthalten
#enthalten
Verwenden von STD :: Cout; mit std :: endl;
Verwenden von STD :: String; Verwenden von STD :: Reverse;
String revstr (String & st)
String Reverse (st.rbegin (), st.zerreißen());
Rückkehr zurückkehren;

int main ()
String mystring = "Umgekehrt die Zeichenfolge";
Cout << MyString << endl;
Cout << RevStr(MyString) << endl;
Rückkehr 0;

Wir können auch in dieser Weise den undefinierten Fehler der Zeichenfolge verhindern. Wir müssen keine STD -Anweisung mit jeder String -Deklaration im Code schreiben. Wir können es nur einmal im Header -Abschnitt definieren. Die Ergebnisse sind im folgenden Bild gezeigt.

Abschluss

Jetzt haben wir erfahren, wie wir den undefinierten Fehler in C beseitigen können++. Wir haben die wahrscheinliche Ursache des Fehlers mit dem laufenden Beispiel im Artikel durchlaufen. Wir haben das Programm untersucht, das nicht den Namespace STD und STD :: String verwendete, und stellten fest, wie wichtig diese im C ++ - Code sind. Diese Ansätze helfen den Programmierern sicherlich, den undefinierten Fehler der Zeichenfolge zu vermeiden.