Fix C ++ feilstreng er udefinert

Fix C ++ feilstreng er udefinert
Når vi utfører et program, får vi noen ganger rare resultater i stedet for ønsket utgang. Udefinert streng i C ++ -programmering refererer til når et program ikke klarer å kompilere, når det utfører feil, krasjer eller gir unøyaktige resultater, eller når det gjør nettopp hva programmereren hadde til hensikt ved en tilfeldighet. Det anses å ha en udefinert strengfeil når utfallet av et program som kjører er usikkert.

I denne artikkelen skal vi løse den udefinerte strengen på effektive måter støttet av C ++ programmeringsspråket. Å forstå udefinerte streng unntak som en C ++ -programmerer er avgjørende for effektiv koding og programytelse, spesielt når C ++ -koder er integrert med systemarkitektur.

Tilnærmingen for å fikse "strengen er udefinert" feil i C++

Hvis du er ny på programmeringsspråket C ++, kan du møte feil som C ++ -strengen er udefinert. I C ++ har vi to måter å løse feilen for en udefinert streng.

  1. namespace std: Navnområdet STD betyr at vi bruker navneområdet STD. “STD” er et forkortelse for standard. Som et resultat bruker vi alt i "kjønnssykdommer". Vi må bruke navneområdet STD med nøkkelordet som brukes i toppseksjonen for å bruke det på hele filen.
  2. std :: streng: Definisjonen av C ++ inkluderer en metode for å representere en serie karakterer som et klasseobjekt. Denne klassen er kjent som std :: streng. Ettersom strengvariabelen er tilgjengelig i STD -navneområdet, så bruker vi STD :: streng når du erklærer strengen i koden. STD brukes med omfangsoppløsningsoperatøren på programmeringsspråket C ++.

Eksempel 1

Her i vårt første eksempel skal vi vise hvordan C ++ -kompilatoren kaster en feilfeil er udefinert. I begynnelsen av programmet vårt importerte vi et bibliotek som heter “IOSTREAM”. Iostream er en overskriftsfil i C ++ som spesifiserer en samling av standardinngangs- og utgangsfunksjoner. Den inneholder også I/O -strømobjekter som Cin, Cout, Clog og så videre. Cout brukes til å vise utdataene "Enter Your Name".

Etter denne linjen har vi CIN -kommandoen som tar inngangen fra brukeren for strengen “Namestr”. Gjennom cout -kommandoen vises utgangen og inngangen. “Return 0” som brukes på slutten av hovedfunksjonen, utfører funksjonen vellykket.

#inkludere
int main ()

streng Namestr;
cout << "Enter your name "NameStr;
cout << "Your Name : " << NameStr << endl;
retur 0;

Du kan merke deg at samlingen av programmet ovenfor gir en feil på denne måten, og også foreslår måten å erklære streng i hovedfunksjonen. Vi har et uventet resultat fra utførelsen ovenfor.

Eksempel 2

Illustrasjonsprogrammet ovenfor kaster strengen udefinert feil. Nå må vi løse feilen i strengen som ikke er definert ved å bruke navneområdet STD i overskriften Fil -delen. Vi har tatt med iostream -filen i programmet C++. Under Iostream -filen har vi tatt med "namespace std" -filen med nøkkelordet "Bruker". Navnområdet STD vil hjelpe oss med å overvinne den udefinerte feilen. Deretter opprettet vi to navneområder “Integer” og “Double”.

I blokken av "heltall" -navnet har vi erklært to variabler "a" og "b" av typen heltall og initialisert dem med de numeriske verdiene. Vi har gjort det samme i blokken av "dobbelt" navneområde, men typen som brukes er dobbelt. Merk at vi har definert variabler med de samme navnene “A” og “B” i begge navnefeltet. Dette er egenskapen til navneområdet som lar oss erklære variabler og funksjoner med samme navn.

Deretter har vi hovedfunksjonen som får tilgang til variablene i navneområdet ved å bruke omfangsoppløsningsoperatøren. Gjennom COUT -kommandoen vil vi vise verdien av variabel “A” fra “heltall” navneområdet og verdien av variabel “B” fra “dobbelt” navneområdet.

#inkludere
ved hjelp av navneområdet STD;
Navneområde Heltall

int a = 2;
int b = 8;

Navnområde dobbelt

Dobbelt A = 1.888;
Dobbelt B = 2.745;

int main ()
Bruker heltall :: a;
bruker dobbel :: b;
cout << "a="<< a << endl;
cout << "b="<< b << endl;
cout << "Integer="<< Integer::a << endl;
cout << "Double="<< Double::b << endl;
retur 0;

Vi har fått et forventet resultat ved å bruke navneområdet STD i overskriftsfil -delen av programmet ovenfor.

Eksempel 3:

Vi har en annen måte å bli kvitt den udefinerte feilen, som bruker STD med omfangsoppløsningsoperatøren når du definerer variabelen til typen streng. I programmet nedenfor har vi importert to standardfiler “Iostream” og “String” som samlet koden pent. Hovedfunksjonen er definert og hovedfunksjonsorganet har std cout -kommandoen først med omfangsoppløsningsoperatøren. Det brukes til å vise utdataene.

Deretter har vi brukt STD med omfangsoppløsningsoperatøren for strengvariabelen. Det vil forhindre feilen i strengen som er udefinert i programmet. STD CIN -kommandoen vil få verdien fra brukeren, og den siste linjen har Std Cout -kommandoen som brukes til å vise utdata og verdier som brukes til å ha lagt inn.

#inkludere
#inkludere
int main ()

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

STD :: String -tilnærmingen forhindrer feilen at strengen er udefinert. Utfallet vises på konsollskjermen til Ubuntu.

Eksempel 4

I stedet for å bruke STD med omfangsoppløsning med hver variabel, funksjon eller kommando; Vi kan inkludere STD med omfangsoppløsningsoperatør ved å definere den i overskriftsdelen med nøkkelordet "Bruke". Som du kan se, har vi en STD :: String -setning etter å ha importert standardfilen i C ++.

Deretter har vi en strengfunksjon og i konstruktøren av denne funksjonen har vi gitt strengreferansen “& ST”. I strengfunksjonsblokken har vi definert en "rbegin" -metode for å snu strengen og en "Rend" -metode for å returnere den motsatte enden av den spesifiserte strengen. Etter det har vi hovedfunksjonen der strengvariabelen er definert og initialisert.

#inkludere
#inkludere
#inkludere
bruker std :: cout; bruker std :: endl;
bruker std :: streng; bruker std :: revers;
String revstr (String & st)
String omvendt (ST.rbegin (), St.Rend ());
Returner omvendt;

int main ()
String myString = "Reverse the String";
cout << MyString << endl;
cout << RevStr(MyString) << endl;
retur 0;

Vi kan forhindre strengen udefinert feil på denne måten også. Vi trenger ikke å skrive en STD -uttalelse med hver strengdeklarasjon i koden. Vi kan definere det i toppseksjonen bare en gang. Resultatene vises i følgende bilde.

Konklusjon

Nå ble vi kjent med hvordan vi kan eliminere strengen udefinert feil i C++. Vi har gått gjennom den sannsynlige årsaken til feilen med det løpende eksemplet i artikkelen. Vi undersøkte programmet som ikke brukte navneområdet STD og STD :: String, og bestemte hvor viktig disse er i C ++ -kode. Disse tilnærmingene vil sikkert hjelpe programmerere med å unngå strengen udefinert feil.