当前位置: 代码迷 >> C语言 >> 编译没问题 为什么执行就有问题
  详细解决方案

编译没问题 为什么执行就有问题

热度:80   发布时间:2006-12-30 22:12:25.0
编译没问题 为什么执行就有问题
要求编写一个函数求字符串的长度 由主函数输人字符串
#include <stdio.h>
#include <string.h>

char len(char *p);

void main()
{
char s1[20];
int n;
char *p=s1
gets(p);
n=len(s1);
printf("%d",n);
}
int len(char *p)
{
int i;
while(*p!='\0')
{
i++;
}
return(i);
}


我估计程序里有错误 但是编译能通过 请高手指点

搜索更多相关的解决方案: 编译  

----------------解决方案--------------------------------------------------------
strlen(char *p)

//不包含'\0'
----------------解决方案--------------------------------------------------------
strlen 是string.hh这个文件里面的函数

要求是自己写个函数 来求字符串的长度

楼上成都哪个学校的 我电子科大成都学院。。
----------------解决方案--------------------------------------------------------

是不?
国腾学院?
我有个同学在那.....
我在看看


----------------解决方案--------------------------------------------------------
就是哈

你是哪学校的 我才大一哈

感觉学C学的好浅哦
----------------解决方案--------------------------------------------------------
改成这样就行
#include <stdio.h>
#include <string.h>
#include <iostream.h>

#include <stdio.h>
#include <string.h>

int len(char *p);

void main()
{
char s1[20];
int n;
char *p=s1;
gets(p);
n=len(s1);
printf("%d\n",n);
}
int len(char *p)
{
int i=0;
while(*p!='\0')
{
i++;
p++;
}
return(i);
}

----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <string.h>

int len(char *p);

void main()
{
char s1[20],*p;

int n=0;
p=&s1;
gets(s1);
printf("%d",len(p));
getch();
}
int len(char *p)
{
int i=0;
while(*p!='\0')
{
i++;p++;
}
return(i);
}


----------------解决方案--------------------------------------------------------

谢谢啊

发现刚才打错几个地方 我试下你们写的


----------------解决方案--------------------------------------------------------
这样就ok了

浅吗?
你要把他运用自如还是不简单的哦~~
我不是学计算机专业的
只是业余爱好~
都大三了~~才开始接触....
后悔没早点对他感兴趣~~
想出来从事这方面~
不知道还晚不
哎.......
----------------解决方案--------------------------------------------------------
谢谢啊

我发现我以前的问题在哪了

就是在len函数里面WHILE循环中 没有P++

谢谢大家
----------------解决方案--------------------------------------------------------
  相关解决方案