Foundations — String handling — char arrays, null terminator, strcpy, strcat, strlen, sprintf (dangers)
5.1.20 · D1· Coding › C Programming › String handling — char arrays, null terminator, strcpy, strc
Pehle tum strlen, strcpy, ya sprintf ko parent note mein padh sako, us par har ek tiny symbol ka pehle kuch matlab banana chahiye. Yeh page har ek cheez ko absolute zero se, ek dusre par lean karne ke order mein build karta hai.
1. Ek char — ek box jo ek chhota number hold karta hai
Letter 'A' actually ek shape ke roop mein store nahi hoti. Yeh number ke roop mein store hoti hai. 'A' mein quotes C ka tarika hai yeh kehne ka "mujhe is letter ka ASCII number do" taaki tumhe yaad na rakhna pade ki 'A' hai.

Reveal check:
'0' (digit) versus '\0' (terminator) — same hain ya different?
'0' number 48 hai, '\0' number 0 hai.2. Ek array — ek row mein kaafi saare boxes, side by side
s[i] mein number index hai — start se kitne boxes walk karne hain. Yeh se shuru hota hai: pehla box s[0] hai, s[1] nahi. Toh ek 6-box array mein valid indices s[0] se s[5] tak hain — last index hamesha size minus one hota hai.

Reveal check:
char s[6] mein sabse zyada legal index kya hai?
s[5] (size − 1).3. Null terminator '\0' — STOP box
Boxes ki ek row mein koi built-in sign nahi hota jo bataye word kahan rukta hai. Toh C last real letter ke baad ek STOP box plant karta hai. Har string function ka kaam hai: tab tak aage chalte raho jab tak STOP na mile.

Reveal check:
Ek program '\0' ke bina kaise janega ki string kahan khatam hoti hai?
char boxes ki ek bare row mein koi length store nahi hoti; '\0' hi akaula end marker hai.4. "..." versus '...' — poora word versus ek letter
Toh "Hi" silently 3 boxes occupy karta hai chahe tumne sirf 2 letters type kiye hon. Yeh hidden extra box woh +1 hai jiske baare mein tum baar baar sunta rehte ho.
Reveal check:
Literal "cat" ko kitne boxes chahiye?
'\0'.5. Ek pointer char * — khud boxes nahi, ek address
Importantly, ek pointer sirf starting address hold karta hai. Usse yaad nahi rehta ki aage kitne boxes hain.
Yahi wajah hai C ko '\0' chahiye — pointer akele tumhe nahi bata sakta kahan rukna hai. Deep dive:
Pointers in C.
Reveal check:
Kya ek char * yaad rakhta hai ki us ke address ke baad kitne characters aate hain?
'\0' end mark karta hai.6. size_t aur counter i, n — indices jo kabhi negative nahi jaate
Reveal check:
Length ke liye int ki jagah size_t kyun use karte hain?
size_t unsigned counting type hai.7. !=, =, aur while loop — "walk until STOP" engine
Parent ki core line hai while (s[n] != '\0') n++; — ise padho: "jab tak main jis box ko dekh raha hoon woh STOP box nahi, use count karo aur next par step karo." Yeh har string routine ki shape hai.
Reveal check:
= aur != mein kya antar hai?
= ek value store karta hai; != poochta hai "kya yeh dono unequal hain?".8. — "cost length ke saath badhti hai"
Yahi wajah hai ki loop ke andar strlen (ya strcat, jo secretly end dhundhne ke liye scan karta hai) call karna slow ho sakta hai: har call poori row ko dobara walk karta hai.
Reveal check:
strlen kyun hai, instant kyun nahi?
'\0' tak box by box scan karna padta hai — woh steps hain.9. Buffer overflow — kisi aisi box mein likhna jo tumhari nahi
Classic cause hai STOP box ka +1 bhool jaana: char buf[5]; strcpy(buf, "Hello"); ko 5 mein 6 boxes chahiye.
Reveal check:
C mein agar tum ek array ke end ke ek box baad likhte ho toh kya hota hai?
Yeh foundations topic ko kaise feed karte hain
Equipment checklist
Kya tumhare paas har piece hai? Sirf apni awaaz mein answer dene ke baad reveal karo.
Ek char actually kya store karta hai?
char s[6] ka pehla element kaise likha jata hai, aur aakhri?
s[0] pehla, s[5] aakhri (index = size − 1).'\0' kya hai aur uski numeric value kya hai?
char jo number hold karta hai."cat" kitne boxes occupy karta hai?
'\0'.'0' aur '\0' mein antar?
'0' hai (ek digit); '\0' hai (terminator).Ek char * kya store karta hai, aur kya store NAHI karta?
sizeof buf galat kyun ho sakta hai?
buf ek pointer hai, toh sizeof pointer ka size deta hai, buffer ka nahi.while (s[n] != '\0') n++; ko plain words mein padho.
strlen kyun hai?
'\0' tak har box scan karta hai.