C的新手题

来源:百度知道 编辑:UC知道 时间:2024/07/05 05:26:02
#include"stdio.h"
#include"string.h"

void main()
{
char a[30];
int i;
printf("输入一段字符:\n");
scanf("%s",a);
i=asd(a);
printf("%d\n",i);
}
asd(char *p);
{
int i;
i=0;
while(*p!="\0");
{i++;
p++;
}
return(i);
}

错误提示是:
E:\Program Files\Microsoft Visual Studio\MyProjects\5\2.c(3) : error C2449: found '{' at file scope (missing function header?)
E:\Program Files\Microsoft Visual Studio\MyProjects\5\2.c(11) : error C2059: syntax error : '}'
3.c
e:\program files\microsoft visual studio\myprojects\5\3.c(10) : warning C4013: 'asd' undefined; assuming extern returning int
e:\program files\microsoft visual studio\myprojects\5\3.c(14) : error C2449: found '{' at file

//这是正确的程序
#include"stdio.h"
#include"string.h"

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

void main()
{
char a[30];
int i;
printf("输入一段字符:\n");
scanf("%s",a);
i=asd(a);
printf("%d\n",i);
}

//首先,asd(char *p)后面多了个分号,while(*p!="\0"); 这句应改为:while(*p!='\0'),以后程序的时候要小心点~

错误地点:asd(char *p);
多了一个";"

scanf("%s",a); 应该为scanf("%s",&a); 我看不出有其他的错误了。

asd()这个函数在使用前没有声明。