C Programmēšana

Stīgu garums C valodā

Stīgu garums C valodā
Virkne C valodā ir rakstzīmju masīvs, kas tiek izbeigts ar nulles rakstzīmi (\ 0). Virknes garums ir rakstzīmju skaits virknē. Virknes garumā '\ 0' raksturs netiek skaitīts.

Iepriekš parādītajā piemērā virknes garums str ir 6.

Šajā apmācībā vispirms parādīsim, kā lietot a lietotāja definēta funkcija lai aprēķinātu virknes garumu, un pēc tam mēs parādīsim iebūvētu bibliotēkas funkciju strlen (). Mēs arī parādīsim, kā tiek izmantoti sizeof operators stīgu literāļiem.

Virknes garums, izmantojot lietotāja definētu funkciju

Varat uzrakstīt lietotāja definētu funkciju, kas atgriež virknes rakstzīmju skaitu.

// Piemērs1.c
# iekļaut
int stringLength (char * str)

int i = 0;
kamēr (str [i] != '\ 0') i ++;
atgriešanās i;

int main ()

char str [30] = "STRING";
printf ("Virknes str garums ir =>% d \ n", stringLength (str));
atgriešanās 0;

Lūk, mēs atkārtojam kamēr cilpu no i = 0 kamēr mēs nesastopamies ar '\ 0' raksturs. Vērtība i tiek palielināts par 1 katrā cilpa iterācijā. Kad cilpa beidzas, vērtība i ir virknes garums.

Virknes garums, izmantojot iebūvēto bibliotēkas funkciju

Iebūvētā bibliotēkas funkcija strlen () var izmantot arī virknes garuma noteikšanai.

strlen () funkcija:

Galvenes fails:

virkne.h

Sintakse:

size_t strlen (const char * str)

Arguments: Šī funkcija aizved tipa rādītāja argumentu uz char.

Atgriešanās vērtība: Šī funkcija atgriež virknes garumu str. Pieraksti to izmērs_t ir tikai neparakstīta vesela skaitļa aizstājvārds.

// Piemērs2.c
# iekļaut
# iekļaut
int main ()

char str1 [30] = "STRING ARRAY";
char * str2;
char * str3;
str2 = str1;
str3 = "STRING POINTER";
printf ("Virknes str1 garums ir =>% ld \ n", strlen (str1));
printf ("Virknes str2 garums ir =>% ld \ n", strlen (str2));
printf ("Virknes str3 garums ir =>% ld \ n", strlen (str3));
printf ("Virknes" STRING LITERALS "garums ir =>% ld \ n", strlen ("STRING LITERALS");
atgriešanās 0;

Šeit mēs nododam virknes masīvu, virknes rādītāju un virknes literālu funkcijai strlen, un funkcija atgriež virknes garumu.

Stīgas garums, izmantojot operatora izmēru

Mēs arī varam izmantot sizeof operators virknes garumam (tikai virknes literālim). Bet no šī operatora atdotās vērtības mums ir jāatņem 1, jo tajā tiek skaitīts arī raksturs '\ 0'. Masīvam un rādītājam operatora sizeof atgriež attiecīgi piešķirto masīva un rādītāja lielumu.

// Piemērs3.c
# iekļaut
int main ()

char str1 [30] = "STRING";
char * str2 = str1;
printf ("" STRING "garums ir =>% d \ n", (sizeof ("STRING") - 1));
printf ("Str1 masīva piešķirtais lielums ir =>% d \ n", sizeof (str1));
printf ("str2 rādītāja lielums ir =>% d \ n", sizeof (str2));
atgriešanās 0;

9. rindā Nr. 9 mēs nododam virkni burtiski “STRING” un iegūstam izmēru, ieskaitot rakstzīmi “\ 0”. Tātad, mēs atņemam 1 un iegūstam faktisko virknes lielumu.

Kad mēs nododam masīvu operatoram sizeof, tas atgriež piešķirto masīva lielumu, kas ir 30, un, nododot rakstzīmju rādītāju, atgriež rādītāja lielumu.

Secinājums

Tātad šajā apmācībā mēs parādījām, kā virknes garumu var aprēķināt dažādos veidos. Kodā varat izmantot to metodi, kas jums ir vispiemērotākā.

Kā parādīt OSD pārklājumu pilnekrāna Linux lietotnēs un spēlēs
Spēlējot pilnekrāna spēles vai lietojot lietotnes bez atrautības pilnekrāna režīmā, jūs varat izslēgt no attiecīgās sistēmas informācijas, kas redzama...
Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...
Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...