Utoaji na Urekebishaji wa Mstari katika C: Matangazo, Uanzishaji, na Kazi za Kawaida Zimeelezwa

1. Utangulizi

Katika lugha ya programu ya C, herufi (strings) zinachukuliwa kama safu za herufi tu. Kwa sababu ya tabia hii, zinapaswa kushughulikiwa tofauti na herufi katika lugha zingine. Hasa, wakati wa kupewa au kuanzisha herufi, lazima ujumuishe herufi ya null () kumaliza herufi ipasavyo. Katika makala hii, chini ya mada yaUtoaji wa herufi katika C,” tutashughulikia kila kitu kutoka kwenye tamko la msingi hadi mbinu za utoaji na usindikaji, pamoja na tahadhari muhimu za kudumisha uthabiti wa programu.

2. Kutangaza na Kuanzisha Herufi

Katika C, herufi hutangazwa kupitia safu za herufi. Hapo chini kuna njia za kawaida za kutangaza na kuanzisha.

Kutangaza na Kuanzisha kwa Kutumia Safu

Herufi zinaweza kutangazwa na kuanzishwa kupitia safu kama ifuatavyo:

char greeting[] = "Hello";

Katika mfano hapo juu, herufi greeting imeanzishwa na “Hello,” na herufi ya null () inaongezwa kiotomatiki mwishoni. Katika C, unaweza kutumia opereta = kuanzisha safu wakati wa kutangaza, na ni kawaida kutoandika ukubwa wa safu katika njia hii.

Kuongeza Herufi ya Null

Ukianza herufi kwa herufi, lazima uongeze mwenyewe herufi ya null, kama ilivyoonyeshwa hapa chini:

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

Bila herufi hii ya null, kazi za usindikaji wa herufi za C hazitafanya kazi kwa usahihi, na zinaweza kusoma kando ya mpaka wa kumbukumbu na kusababisha tabia isiyotakiwa.

3. Jinsi ya Kutoa Herufi

Katika C, huwezi kupewa moja kwa moja herufi moja kwa nyingine. Ili kunakili yaliyomo ya kigezo cha herufi moja hadi kingine, unatumia kazi ya strcpy.

Matumizi ya Msingi ya strcpy

strcpy ni sehemu ya maktaba ya kawaida <string.h> na inaweza kutumika kama ifuatavyo:

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

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

Katika msimbo huu, yaliyomo ya source yananakiliwa kwenye destination, na destination inashikilia “Hello.” Kwa kuwa strcpy haina uzuri wa kuzingatia ukubwa wa safu, kuwa mwangalifu ili kuepuka kuzidiwa kwa buffer.

4. Usindikaji wa Herufi

C inatoa kazi kadhaa za urahisi kwa usindikaji wa herufi. Hapo chini, tutashughulikia zile zinazotumika mara nyingi kama strlen, strcat, na strcmp.

Kupata Urefu wa Herufi: strlen

Ili kupata urefu wa herufi, tumia kazi ya strlen. Kazi hii inarudisha idadi ya herufi bila kujumuisha herufi ya null.

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

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

Kuunganisha Herufi: strcat

Kazi ya strcat inaongeza herufi moja kwenye nyingine.

#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;
}

Kulinganisha Herufi: strcmp

Kazi ya strcmp inalinganisha herufi mbili kwa mpangilio wa kamusi. Inarudisha 0 ikiwa ni sawa, au thamani chanya/hasi ikiwa zinatofautiana.

#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;
}

Hii inakuwezesha kuangalia kama herufi ni sawa au kubaini mpangilio wao kulingana na kamusi.

5. Kushughulikia Herufi kwa Vidokezo

Herufi pia zinaweza kushughulikiwa kwa kutumia vidokezo. Hii inaruhusu usimamizi wa kumbukumbu unaobadilika zaidi, lakini operesheni zisizo sahihi zinaweza kusababisha makosa au kuanguka kwa programu, hivyo tahadhari inahitajika.

Kutoa Herufi kwa Vidokezo

Unapotumia vidokezo, unaweza kutangaza na kuziweka kama ifuatavyo:

#include <stdio.h>

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

Kama ilivyoonyeshwa, kiashiria kinaweza kuashiria moja kwa moja kwa maandishi halisi. Hata hivyo, maudhui ya maandishi halisi hayawezi kubadilishwa.

6. Muhtasari na Tahadhari

Utoaji na usindikaji wa maandishi katika C huwa na hatari za makosa ya kificho kama vile kuzidiwa kwa buffer au upatikanaji usio sahihi wa kiashiria. Unapotumia kazi kama strcpy au strcat, daima zingatia ukubwa wa safu na ugawie nafasi ya kutosha ya buffer. Vivyo hivyo, unapofanya kazi na viashiria, shughulikia herufi za null na us wa kumbukumbu kwa uangalifu. Ikiwa imetekelezwa kwa usahihi, operesheni za maandishi zinaweza chombo chenye ufanisi kwa usindikaji wa data.

侍エンジニア塾