Pag-assign at Pag-manipula ng C String: Mga Deklarasyon, Inisyal na Pagtatakda, at Paliwanag sa mga Karaniwang Function

1. Panimula

Sa wikang C, ang mga string ay itinuturing lamang bilang mga array ng mga karakter. Dahil sa katangi ito, kailangang pangasiwaan ang mga ito nang iba kumpara sa mga string sa ibang wika. Lalo na kapag nag-aassign o nag-iinitialize ng mga string, kailangan mong isama ang null character () upang maayos na tapusin ang string. Sa artikulong ito, sa ilalim ng temang “C string assignment,” tatalakayin natin ang lahat mula sa mga batayang deklarasyon hanggang sa mga paraan ng pag-aassign at pag-manipula, pati na rin ang mahahalagang pag-iingat para mapanatili ang katatagan ng programa.

2. Pagdeklara at Pag-iinitialize ng mga String

Sa C, ang mga string ay dine-deklara sa pamamagitan ng mga array ng mga karakter. Narito ang ilang karaniwang paraan upang ideklara at iinitialize ang mga ito.

Deklarasyon at Pag-iinitialize Gamit ang mga Array

Maaaring ideklara at iinitialize ang mga string sa pamamagitan ng mga array tulad ng sumusunod:

char greeting[] = "Hello";

Sa halimbawang nasa itaas, ang string na greeting ay iniinitialize sa “Hello,” at awtomatikong idinadagdag ang isang null character () sa dulo. Sa C, maaari mong gamitin ang operator na = upang iinitialize ang mga array sa oras ng deklarasyon, at karaniwan na hindi na tinutukoy ang sukat sa pamamaraang ito.

Pagdaragdag ng Null Character

Kung iniinitialize mo ang isang string karakter-para-karakter, kailangan mong manu-manong idagdag ang null character, tulad ng ipinapakita sa ibaba:

char greeting[6] = {'H', 'e', 'l', 'l', 'o', ''};

Kung wala ang null character na ito, hindi gagana nang tama ang mga string manipulation function ng C, na maaaring magbasa lampas sa hangganan ng memorya at magdulot ng hindi inaasahang pag-uugali.

3. Paano Mag-assign ng mga String

Sa C, hindi mo maaaring direktang i-assign ang isang string sa isa pa. Upang kopyahin ang nilalaman ng isang string variable papunta sa isa pa, ginagamit mo ang function na strcpy.

Pangunahing Paggamit ng strcpy

Ang strcpy ay bahagi ng standard library na <string.h> at maaaring gamitin tulad ng sumusunod:

#include <stdio.h>
#include <string.h>

int main() {
    char source[] = "Hello";
    char destination[10];
    strcpy(destination, source);
    printf("Copied string: %sn", destination);
    return 0;
}

Sa code na ito, kinokopya ang nilalaman ng source papunta sa destination, kaya ang destination ay naglalaman ng “Hello.” Dahil hindi isinasaalang-alang ng strcpy ang sukat ng array, mag-ingat upang maiwasan ang buffer overflow.

4. Pag-manipula ng String

Nagbibigay ang C ng ilang maginhawang function para sa pag-manipula ng string. Sa ibaba, tatalakayin natin ang mga karaniwang ginagamit tulad ng strlen, strcat, at strcmp.

Pagkuha ng Haba ng String: strlen

Upang makuha ang haba ng isang string, gamitin ang function na strlen. Ang function na ito ay nagbabalik ng bilang ng mga karakter maliban sa null character.

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello";
    printf("String length: %zun", strlen(str));
    return 0;
}

Pagsasama ng mga String: strcat

Ang function na strcat ay nagdadagdag ng isang string sa dulo ng isa pa.

#include <stdio.h>
#include <string.h>

int main() {
    char greeting[20] = "Hello";
    char name[] = " World";
    strcat(greeting, name);
    printf("Concatenated string: %sn", greeting);
    return 0;
}

Paghahambing ng mga String: strcmp

Ang function na strcmp ay naghahambing ng dalawang string nang leksikograpiko. Nagbabalik ito ng 0 kung magkapareho ang mga, o ng positibo/negatibong halaga kung magkaiba.

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    int result = strcmp(str1, str2);
    if (result == 0) {
        printf("Strings are equal.n");
    } else {
        printf("Strings are different.n");
    }
    return 0;
}

Pinapayagan ka nitong suriin kung magkapareho ang mga string o alamin ang kanilang pagkakasunod-sunod ayon sa diksyunaryo.

5. Paghawak ng mga String gamit ang Pointers

Maaaring pangasiwaan ang mga string gamit ang mga pointer. Nagbibigay ito ng mas flexible na pamamahala ng memorya, ngunit ang maling operasyon ay maaaring magdulot ng mga error o pag-crash, kaya kailangan ng pag-iingat.

Pag-aassign ng mga String gamit ang Pointers

Kapag gumagamit ng mga pointer, maaari mong ideklara at iassign ang mga ito tulad nito:

#include <stdio.h>

int main() {
    char *greeting = "Hello";
    printf("%sn", greeting);
    return 0;
}

Tulad ng ipinakita, maaaring direktang ituro ng isang pointer ang isang string literal. Gayunpaman, hindi maaaring baguhin ang nilalaman ng isang string literal.

6. Buod at Mga Paalala

Ang pag-aassign at pag-manipula ng mga string sa C ay madaling magdulot ng mga mapanlinlang na error tulad ng buffer overflow o hindi wastong pag-access ng pointer. Kapag gumagamit ng mga function tulad ng strcpy o strcat, laging isaalang-alang ang laki ng array at maglaan ng sapat na puwang sa buffer. Gayundin, kapag nagtatrabaho sa mga pointer, pangasiwaan nang maingat ang mga null character at pamamahala ng memorya. Kung maayos na ipinatupad, ang mga operasyon sa string ay maaaring maging epektibong kasangkapan para sa pagproseso ng data.

年収訴求