Vaikka yksinkertaista funktiota voidaankin käyttää mukavasti lausekkeen osana, tulee seuraavankaltaista rakennetta välttää:
int i,a_lkm=0; char st[50]="Saippuakauppias"; for (i=0; i<strlen (st); i++) :-( if ( jono[i]=='a' ) a_lkm++; ...
Miksikö? Koska strlen- funktio suoritetaan jokaisella silmukan kierroksella ja strlen suorittaminenhan vaati koko jonon läpikäymisen! Rakenne tulee korvata seuraavasti:
int i,a_lkm=0,st_pit; char st[50]="Saippuakauppias"; ... st_pit=strlen(st); for (i=0; i<st_pit; i++) if ( jono[i]=='a' ) a_lkm++; ...
Edellä kävisi myös seuraava, miksi?
for (i=strlen(st)- 1; i >= 0; i- - ) if ( jono[i]=='a' ) a_lkm++;