如题所述
方法一:数组方式
代码如下:
<span style="font-size:18px;">#include<stdio.h>
#include<assert.h>
int my_strlen(char const*str)
{
int count=0;
assert(str);//断言,判断指针的有效性
while(*str++!=NULL)
{
count++;
}
return count;
}
int main()
{
char arr[30]="trouble is a friend.";
printf("%d\n",my_strlen(arr));
getchar();
return 0;
}</span>
运行结果:
方法二:指针方式
说明:当两个指针都指向同一个数组中的元素,指针减指针就是指针与指针之间元素的个数;两个地址相加没有实际意义。
代码如下:
<span style="font-size:18px;">#include<stdio.h>
int my_strlen(char const*str)
{
char const*tmp=str;
while(*str!='\0')
{
str++;
}
return str-tmp;
}
int main()
{
char arr[30]="trouble is a friend.";
printf("%d\n",my_strlen(arr));
getchar();
return 0;
}</span>
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-12-15
#include "stdio.h"
int getLength(char *p)
{
int length=0;
for(;*p!='\0';p++)
length++;
return length;
}
int main()
{
char a[80]={0};
printf("请输入一个字符串:");
gets(a);
printf("输入字符串的长度为:%d\n",getLength(a));
return 0;
}本回答被提问者采纳
int getLength(char *p)
{
int length=0;
for(;*p!='\0';p++)
length++;
return length;
}
int main()
{
char a[80]={0};
printf("请输入一个字符串:");
gets(a);
printf("输入字符串的长度为:%d\n",getLength(a));
return 0;
}本回答被提问者采纳
第2个回答 2014-01-09
#include <stdio.h>
#include <iostream>
void main()
{
char a[100];
int h=0;
gets(a);
h=strlen(a);
printf("%d\n",h);
}
#include <iostream>
void main()
{
char a[100];
int h=0;
gets(a);
h=strlen(a);
printf("%d\n",h);
}
第3个回答 2014-01-09
int strlen(char * str)
{
int len = 0;
if (str != NULL)
{
while (*str != '\0')
{
len++;
str++;
}
}
return len;
}
{
int len = 0;
if (str != NULL)
{
while (*str != '\0')
{
len++;
str++;
}
}
return len;
}
第4个回答 2014-01-09
int __strlen__(char *str)
{
assert(str);
char *p = str;
while(*str++);
return str-p-1;
}本回答被网友采纳
{
assert(str);
char *p = str;
while(*str++);
return str-p-1;
}本回答被网友采纳