问题:
求一个字符串的三种解法
一、计数的方法
#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));
}
转载于:https://blog.51cto.com/9195095/1706394