利用指针编写求字符串长度的函数strlen()

飘渺的沙 2012-05-16 12:13:24
#include<stdio.h>
char strlen (char *p)
{while (*p)p++;
return () ;
}
main()
{char str[20] ;
scanf("%s",str);
strlen(str);
printf("length of str=%d",p-str);
}
这么写哪里不对,求帮助,我是新生不懂,请大家别见笑啊!
...全文
2370 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingcsharp 2012-05-16
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <windows.h>



int strlen(char* p)
{
int n=0;
while(*(p++)!='\0')
n++;
return n;
}

int main()
{
int i=0;
char path[260];
char winDir[260];
GetSystemDirectoryA(path,260);
GetWindowsDirectoryA(winDir,260);
printf("%d\n",strlen(path));
printf("%d\n",strlen(winDir));
printf("%s\n",path);
printf("%s\n",winDir);
getchar();
}

答案

19
10
C:\WINDOWS\system32
C:\WINDOWS
EnForGrass 2012-05-16
  • 打赏
  • 举报
回复 2
我给你写个简单的,自己体会

#include<stdio.h>

int strlen(char *p)
{
int len=0;
while(*p!='\0')
{
p++;
len++;
}
return len;
}

void main()
{
char str[20];
scanf("%s",str);
int len=0;
len=strlen(str);
printf("the length of string is %d\n",len);
}
飘渺的沙 2012-05-16
  • 打赏
  • 举报
回复
#include<stdio.h>
char strlen (char *p)
{while (*p)p++;
return (strlen) ;
}
main()
{char str[20],*p ;
scanf("%s",str);
strlen(str);
printf("length of str=%d",p-str);
}
如果这么写对么?麻烦您了
EnForGrass 2012-05-16
  • 打赏
  • 举报
回复
p-str中的p在主函数都没定义,而且strlen 函数返回的是末尾地址,你看你写的return () ;这什么意思?
蔡袅 2012-05-16
  • 打赏
  • 举报
回复
#include<stdio.h>

int strlen (char *p)
{
int i=0;
for(;*p;i++,p++);
return i ;
}

void main()
{
char str[20] ;
scanf("%s",str);
printf("length of str=%d",strlen(str));
}
xky96 2012-05-16
  • 打赏
  • 举报
回复 1
与指针无关,
楼主对函数的基础知识还没入门

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧