http://9195095.blog.51cto.com/9185095/1706394
2015
问题:
求一个字符串的三种解法
一、计数的方法
#include<stdio.h> #include<assert.h> int my_strlen( char * str) { int count=0; while (*str) { count++; str++; } return count; } int main( void ) { char *arr = "abcef" ; int ret = my_strlen(arr); printf ( "%d\n" , ret); } |
二、指针-指针的方法
#include<stdio.h> #include<assert.h> int my_strlen( const char *str) { assert (srt); const char * ret = str; while (*ret++) { ; } return (ret - str-1); } int main( void ) { char *arr = "abcdef" ; printf ( "%d\n" ,my_strlen(arr)); } |
三、用递归的方法
#include<stdio.h> #include<assert.h> int my_strlen( char * srt) { assert (srt); if (*srt == '\0' ) { return 0; } else { srt++; return (1 + my_strlen(srt)); } } int main( void ) { char *arr = "abcdef" ; printf ( "%d\n" , my_strlen(arr)); } |
联系客服