面試題 模擬實現strlen函式的3種方法。
阿新 • • 發佈:2019-01-06
第一種方法是用計數器模擬實現strlen函式。
#include<stdio.h> #include<assert.h> int my_strlen(const char *str) { int count = 0; assert(str!=NULL); while(*str!='\0') { str++; count++; } return count; } int main() { int ret = 0; char arr[10]="abcdefgh"; ret = my_strlen(arr); printf("%d\n",ret); return 0; }
第二種方法是用指標減指標的方法模擬實現strlen函式。
#include<stdio.h>
int my_strlen(const char *str)
{
const char *p = str;
while(*p!='\0')
{
p++;
}
return p-str;
}
int main()
{
int ret = 0;
char arr[10]="abcdefgh";
ret = my_strlen(arr);
printf("%d\n",ret);
return 0;
}
第三種是用函式遞迴的方法模擬實現strlen函式。
#include<stdio.h> int my_strlen(const char *str) { if(*str=='\0') return 0; else return 1+my_strlen(str+1); } int main() { int ret = 0; char arr[10]="abcdefgh"; ret = my_strlen(arr); printf("%d\n",ret); return 0; }
三種方法的結果都是: