1. Introduction
Ang wikang C ay patuloy na malawakang ginagamit ngayon sa mga larangan ng system programming at embedded programming. Sa wikang ito, ang strings at arrays ay mga pangunahing elemento para sa pamamahala ng data. Kapag nag-aaral ng C, hindi maiiwasan ang pag-unawa sa natatanging espesipikasyon kung saan itinuturing ang mga string bilang “mga array ng mga karakter”.
Ang artikulong ito ay sumisid nang malalim sa mga pangunahing konsepto ng mga string at array sa C, na naglalayong sagutin ang mga karaniwang tanong ng mga baguhan at intermediate na programmer tungkol sa “mga pagkakaiba at ugnayan ng mga string at array.”
Sa pamamagitan ng mga totoong halimbawa ng programa, tatalakayin din natin kung paano magdeklara ng mga array at string, ang mga pangunahing function para sa pag-manipula ng string, at mga mahalagang punto tungkol sa pamamahala ng memorya. Makakatulong ito upang magtrabaho ka sa mga string sa C nang mas ligtas at mas epektibo.
2. Basics of Arrays
Ang pag-unawa sa mga array sa C ay pundasyon ng pag-manipula ng string. Sa seksyong ito, ipapaliwanag namin ang konsepto at paggamit ng mga array.
What is an Array?
Ang array ay isang estruktura na nag-iimbak ng data ng parehong uri sa magkakasunod na lokasyon ng memorya. Halimbawa, ang pagdeklara ng isang int array ay nagbibigay-daan sa iyo na hawakan ang maraming integer nang sabay-sabay. Sa C, nagdeklara ka ng array tulad ng sumusunod:
int numbers[5]; // An array to store 5 integers
Ang code na ito ay nagdeklara ng isang integer array na tinatawag na numbers at naglaan ng memorya para mag-imbak ng 5 integer. Maa-access mo ang bawat elemento gamit ang isang index.
Declaring and Initializing Arrays
Maaari mong i-initialize ang isang array kasabay ng pagdeklara nito. Ang initialization ay nangangahulugang pagtatakda ng mga paunang halaga habang nagde-declare.
int numbers[5] = {1, 2, 3, 4, 5}; // Declaration and initialization of an array
Dito, ang array na numbers ay nag-iimbak ng mga integer mula 1 hanggang 5 nang sunod-sunod. Kung hindi mo i-initialize, ang array ay maglalaman ng hindi tinukoy na mga halaga (garbage data mula sa memorya).
Memory Layout and Access of Arrays
Sa C, ang mga array ay naka-imbak sa magkakasunod na memorya. Halimbawa, ang pagdeklara ng int numbers[5] ay naglalaan ng sunud-sunod na lokasyon ng memorya para sa numbers[0] hanggang numbers[4].
Ina-access mo ang mga elemento gamit ang mga index, nagsisimula sa 0 at umaabot hanggang sa laki – 1.
printf("%d", numbers[0]); // Print the first element of the array
Sa pamamagitan ng paggamit ng mga array, maaari mong pamahalaan ang maraming item ng data na pareho ang uri sa ilalim ng isang variable at mag-operate sa mga ito nang epektibo.
3. Basics of Strings
Sa C, ang mga string ay hindi lamang mga sunod-sunod na karakter—ito ay itinuturing na espesyal na mga array. Ang seksyong ito ay nagpapaliwanag ng mga sangkap at pag-manipula ng mga string sa C.
What is a String?
Sa C, ang string ay kinakatawan bilang isang character array na may nagtatapos na null character (' ') sa dulo. Ang null character na ito ay nagmamarka ng katapusan ng string at may mahalagang papel sa mga operasyon ng string.
Halimbawa, maaari kang magdeklara ng string tulad nito:
char greeting[6] = {'H', 'e', 'l', 'l', 'o', ' '};
Dito, ang array na greeting ay nag-iimbak ng 5 karakter na “Hello,” kasunod ng isang null character. Sa C, kinikilala ang mga string sa pamamagitan ng pagkakaroon ng ' ' sa dulo.
Declaring and Initializing Strings
Maaari mong i-initialize ang mga string nang direkta bilang mga character array. Kadalasan, gumagamit ka ng string literals para sa deklarasyon at initialization:
char greeting[] = "Hello";
Sa anyong ito, awtomatikong idinadagdag ng compiler ang null character, kaya ang sukat ng array na greeting ay 6 (5 karakter + null). Kung balewalain mo ang null character, maaaring magdulot ito ng maling resulta.
String Literals vs. Character Arrays
Sa C, ang mga string literal at character array ay magkatulad ngunit magkaiba. Ang isang string literal ay dineklara bilang const char*, na ginagawang hindi nababago.
const char *greeting = "Hello"; // String literal
Ang isang character array, sa kabilang banda, ay maaaring baguhin tulad ng karaniwang array. Halimbawa, char greeting[] = "Hello"; ay nagpapahintulot na baguhin ang mga elemento nito.
greeting[0] = 'h'; // Change "Hello" to "hello"
Ang pag-unawa sa pagkakaiba ay nakakatulong sa pamamahala ng memorya at pag-iwas sa mga error.


