A c++ fajta karakterláncoknál automatikusan bekerül a sor végére a '\0' karakter?
Például ebben az esetben be kerül:
char stringArray[10];
std::cin.get(stringArray,10); //amikor bele kerül a szöveg a stringArrayba akkor itt automatikusan a végére fogja tenni ezt: '\0' ?
És ebben az esetben:
char stringArray2[5] = "Fehér"; //És itt a végére fogja tenni?
Első vagyok.
A 2. eset viszont érdekes, mert 5 elemű tömböt deklaráltál, de ahhoz, hogy a "Fehér" szót beletedd, 6 elemre van szükség, pont a lezáró '\0' karakter miatt. Úgyhogy az ott így biztosan nem stimmel, de egyébként odateszi a '\0'-t a végére, ha minden rendben van amúgy. Így vagy hibaüzenet, vagy valami más lesz, ezt nem tudom.
Az első verzió az korrekt: [link]
n-1 karaktert olvas, és lezárja.
A második az hibás, ugyanis a "abc" literál ezzel egyenértékű: {'a', 'b', 'c', '\0'}
A fordító nem nyervákol neked? Mert akkor cserélj fordítót.
"initializer-string for array of chars is too long"
Csak a te kedvedért kipróbáltam. Ahogy sejtettem, compiler error. Ugyanez inttömbbel:
int array[3] = {1, 2, 3, 4};
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!