Correction de la chaîne d'erreur C ++ n'est pas définie

Correction de la chaîne d'erreur C ++ n'est pas définie
Lorsque nous exécutons un programme, nous obtenons parfois des résultats étranges au lieu de la sortie souhaitée. La chaîne non définie dans la programmation C ++ fait référence au moment où un programme ne compile pas, lorsqu'il s'exécute mal, se bloque ou produit des résultats inexacts, ou lorsqu'il fait précisément tout ce que le programmeur prévu par hasard. Il est considéré comme ayant une erreur de chaîne non définie lorsque le résultat d'un programme en cours d'exécution est incertain.

Dans cet article, nous allons résoudre la chaîne non définie de la manière efficace prise en charge par le langage de programmation C ++. Comprendre les exceptions de chaîne non définies en tant que programmeur C ++ est essentielle pour le codage efficace et les performances du programme, en particulier lorsque les codes C ++ sont intégrés à l'architecture du système.

L'approche pour corriger l'erreur «String est non définie» en C++

Si vous êtes nouveau dans le langage de programmation C ++, vous pouvez rencontrer des erreurs comme la chaîne C ++ n'est pas définie. En C ++, nous avons deux façons de résoudre l'erreur pour une chaîne non définie.

  1. Espace de noms Std: L'espace de noms STD signifie que nous utilisons l'espace de noms STD. «STD» est un acronyme de Standard. En conséquence, nous utilisons tout dans l'espace de noms «std». Nous devons utiliser l'espace de noms STD avec le mot-clé utilisé dans la section d'en-tête pour l'appliquer au fichier entier.
  2. std :: string: La définition de C ++ comprend une méthode pour représenter une série de caractères comme objet de classe. Cette classe est connue sous le nom de std :: String. Comme la variable de chaîne est disponible dans l'espace de noms STD, nous utilisons donc Std :: String chaque fois que vous déclarons la chaîne dans le code. La MST est utilisée avec l'opérateur de résolution de portée dans le langage de programmation C ++.

Exemple 1

Ici, dans notre premier exemple, nous allons montrer comment le compilateur C ++ lance une erreur de chaîne. Au début de notre programme, nous avons importé une bibliothèque appelée «iOStream». L'iOStream est un fichier d'en-tête en C ++ qui spécifie une collection de fonctions d'entrée et de sortie standard. Il contient également des objets d'E / S Stream comme Cin, Cout, Clog, etc. Le cout est utilisé pour afficher la sortie «Entrez votre nom».

Après cette ligne, nous avons la commande CIN qui prend l'entrée de l'utilisateur pour la chaîne «NAMESTR». Via la commande cout, la sortie et l'entrée seront affichées. Le «retour 0» utilisé à la fin de la fonction principale exécute la fonction avec succès.

#inclure
int main()

String Namestr;
couter << "Enter your name "NameStr;
couter << "Your Name : " << NameStr << endl;
retour 0;

Vous pouvez noter que la compilation du programme ci-dessus donne une erreur de cette manière, et suggère également le moyen de déclarer la chaîne dans la fonction principale. Nous avons un résultat inattendu de l'exécution ci-dessus.

Exemple 2

Le programme d'illustration ci-dessus jette l'erreur non définie par chaîne. Maintenant, nous devons résoudre l'erreur de chaîne non définie à l'aide de Namespace STD dans la section du fichier d'en-tête. Nous avons inclus le fichier iOStream dans le programme C++. Sous le fichier iOStream, nous avons inclus le fichier «namespace std» avec le mot-clé «Utilisation». L'espace de noms Std nous aidera à surmonter l'erreur de chaîne non définie. Ensuite, nous avons créé deux espaces de noms «entier» et «double».

Dans le bloc de l'espace de noms «entier», nous avons déclaré deux variables «A» et «B» de type entier et les avons initialisées avec les valeurs numériques. Nous avons fait la même chose dans le bloc d'espace de noms «double» mais le type utilisé est double. Notez que nous avons défini des variables avec les mêmes noms «A» et «B» dans les deux espaces de noms. Ceci est la propriété de l'espace de noms qui nous permet de déclarer des variables et des fonctions avec le même nom.

Ensuite, nous avons la fonction principale qui consiste à accéder aux variables de l'espace de noms en utilisant l'opérateur de résolution de portée. Grâce à la commande cout, nous afficherons la valeur de la variable «A» de l'espace de noms «entier» et la valeur de la variable «B» de l'espace de noms «double».

#inclure
Utilisation de Namespace Std;
entier d'espace de noms

int a = 2;
int b = 8;

Double de l'espace de noms

double a = 1.888;
double b = 2.745;

int main ()
Utilisation de Integer :: A;
Utilisation du double :: b;
couter << "a="<< a << endl;
couter << "b="<< b << endl;
couter << "Integer="<< Integer::a << endl;
couter << "Double="<< Double::b << endl;
retour 0;

Nous avons obtenu un résultat attendu en utilisant des namespace std dans la section Fichier d'en-tête du programme ci-dessus.

Exemple 3:

Nous avons un autre moyen de nous débarrasser de l'erreur non définie par chaîne, qui utilise STD avec l'opérateur de résolution de portée lors de la définition de la variable de type chaîne de type. Dans le programme ci-dessous, nous avons importé deux fichiers standard «iOStream» et «String» qui ont bien compilé le code. La fonction principale est définie et le corps de fonction principale a la commande std cout au début avec l'opérateur de résolution de portée. Il est utilisé pour afficher les données de sortie.

Ensuite, nous avons utilisé STD avec l'opérateur de résolution de portée pour la variable de chaîne. Il empêchera l'erreur de chaîne non définie dans le programme. La commande std CIN obtiendra la valeur de l'utilisateur, et la dernière ligne a la commande std cout qui est utilisée pour afficher les données de sortie et les valeurs utilisées pour avoir entré.

#inclure
#inclure
int main()

std :: cout reg_no;
std :: cout degré;
std :: cout <<"Your Registartion Number is" << Reg_No << "and Your Degree is " << Degree << '\n';
retour 0;

L'approche std :: String empêche l'erreur que la chaîne n'est pas définie. Le résultat est affiché sur l'écran de la console d'Ubuntu.

Exemple 4

Au lieu d'utiliser STD avec une résolution de portée avec chaque variable, fonction ou commande; Nous pouvons inclure l'opérateur de résolution STD avec Scope en le définissant dans la section d'en-tête avec le mot-clé «Utilisation». Comme vous pouvez le voir, après avoir importé le fichier standard en C ++, nous avons une instruction String STD :: avec le mot-clé «Utilisation» et également d'autres instructions STD requises.

Ensuite, nous avons une fonction de chaîne et dans le constructeur de cette fonction, nous avons donné la référence de chaîne «& st». Dans le bloc de fonction String, nous avons défini une méthode «RBEGIN» pour inverser la chaîne et une méthode «Rend» pour renvoyer l'extrémité inverse de la chaîne spécifiée. Après cela, nous avons la fonction principale où la variable de chaîne est définie et initialisée.

#inclure
#inclure
#inclure
Utilisation de std :: cout; Utilisation de std :: endl;
Utilisation de Std :: String; Utilisation de Std :: Reverse;
String revstr (string & st)
String Inverse (ST.rbegin (), st.déchirer());
retour inverse;

int main()
String myString = "Inverser la chaîne";
couter << MyString << endl;
couter << RevStr(MyString) << endl;
retour 0;

Nous pouvons également empêcher l'erreur non définie de la chaîne de cette manière. Nous n'avons pas à rédiger une instruction STD à chaque déclaration de chaîne dans le code. Nous pouvons le définir dans la section d'en-tête une seule fois. Les résultats sont présentés dans l'image suivante.

Conclusion

Maintenant, nous avons appris comment éliminer l'erreur non définie par chaîne en C++. Nous avons traversé la cause probable de l'erreur avec l'exemple en cours d'exécution de l'article. Nous avons examiné le programme qui n'utilisait pas l'espace de noms STD et STD :: String, et déterminé à quel point ceux-ci étaient importants dans le code C ++. Ces approches aideront sûrement les programmeurs à éviter l'erreur non définie par chaîne.