티스토리 뷰

C언어

strcnt

바람사탕 2021. 6. 6. 10:39
반응형

배열을 사용해서 좀더 빠르게 수행하는 함수를 작성해봤습니다.

시간측정은 안해봐서 실제로도 빠른지는 모르겠습니다.

if비교문대신, 배열에 1을 넣어 덧셈만 합니다.

if비교분기가 없어, 더 빠를거라고 예상됩니다.

 

char strcnt_table[256];
int strcnt(TCHAR *s,TCHAR c)
{
int len=strlen(s),n=0;
strcnt_table[c]=1;
while(len>=8)
{
n+=strcnt_table[s[0]]+strcnt_table[s[1]]+strcnt_table[s[2]]+strcnt_table[s[3]]+
strcnt_table[s[4]]+strcnt_table[s[5]]+strcnt_table[s[6]]+strcnt_table[s[7]];
len-=8;
s+=8;
}
while(len>0)
{
n+=strcnt_table[s[0]];
len--;
s++;
}
strcnt_table[c]=0;
return n;
}

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함