c++题目,求解。
编写一个函数my_strlen(),求字符串中包含的字符个数,并作为函数的返回值。要求:用指向字符的指针作为函数的参数。在主函数中输入一个字符串,并输出该字符串及其长度。...
编写一个函数my_strlen(),求字符串中包含的字符个数,并作为函数的返回值。
要求:用指向字符的指针作为函数的参数。在主函数中输入一个字符串,并输出该字符串及其长度。不允许调用系统函数strlen(). 展开
要求:用指向字符的指针作为函数的参数。在主函数中输入一个字符串,并输出该字符串及其长度。不允许调用系统函数strlen(). 展开
3个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
int my_strlen(const char *str)
{
if(!str)
return 0;
int n=0;
const char *ptr=str;
while(*ptr)
{
n++;
ptr++;
}
return n;
}
int main()
{
char * s="hello";
printf("%d\n", my_strlen(s));
}
运行结果:
5
本程序经过了实际运行,确保正确,楼上的提供的程序绝对是错的,很明显。 他的函数连返回值都没有,可想而知。
#include<stdlib.h>
int my_strlen(const char *str)
{
if(!str)
return 0;
int n=0;
const char *ptr=str;
while(*ptr)
{
n++;
ptr++;
}
return n;
}
int main()
{
char * s="hello";
printf("%d\n", my_strlen(s));
}
运行结果:
5
本程序经过了实际运行,确保正确,楼上的提供的程序绝对是错的,很明显。 他的函数连返回值都没有,可想而知。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
效率最高的版本:
unsigned int MyStrLen(char* pStr)
{
char* pTail = pStr;
while(*pTail++);
return pTail - pStr - 1;
}
unsigned int MyStrLen(char* pStr)
{
char* pTail = pStr;
while(*pTail++);
return pTail - pStr - 1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
my_strlen(char *ch)
{
int len=0;
char *p;
for(p=ch;p++;*p=0)
len++;
return len;
}
{
int len=0;
char *p;
for(p=ch;p++;*p=0)
len++;
return len;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询