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.hSintakse:
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ā.