C语言中的语法错误

来源:百度知道 编辑:UC知道 时间:2024/06/22 09:14:37
#include "string.h"
#include "stdio.h"
main()
{char *insert();
char s1[]="student",s2[]="teacher";
int i;
printf("Before:s1=%s s2=%s\n",s1,s2);
printf("Input i:");
scanf("%d",&i);
printf("\nAfter:s=%s\n",insert(s1,s2,i));
}
char *insert(s1,s2,i)
char *p=s1,t,*q=s2; /*C提示是这里 'p' not an argument in function insert*/
{int a,b,c;
a=strlen(s1);b=strlen(s2);
for(c=a;c>0;c++,b--)
{t=*(p+b);
*(p+b)=*(p+b+a);
*(p+a+b)=t;}
for(c=0;c<b;c++)
{ t=*(p+i);
*(p+i)=*(q+c);
*(q+c)=t;}
}
哪位大侠帮帮忙啊

语法错误帮你改了,但是你的程序还有算法错误,你认真研究一下

#include "string.h"
#include "stdio.h"

char *insert(char* s1,char* s2,int i)
{
int a,b,c;
char *p=s1,t,*q=s2;
a=strlen(s1);
b=strlen(s2);
for(c=a;c>0;c++,b--)
{
t=*(p+b);
*(p+b)=*(p+b+a);
*(p+a+b)=t;
}
for(c=0;c<b;c++)
{
t=*(p+i);
*(p+i)=*(q+c);
*(q+c)=t;
}

return s1;
}

void main()
{

char s1[100]="student",s2[100]="teacher";
int i;
printf("Before:s1=%s s2=%s\n",s1,s2);
printf("Input i:");
scanf("%d",&i);
printf("\nAfter:s=%s\n",insert(s1,s2,i) );
}

其实上面的答复已经很好了,但是,我还是想说点什么。

在这道题中有很多的细节你都没有注意到,首先无论是那种语言都是从主函数main()开始的,在C语言中,也是这样的,而且C语言中主要的就是模块也就是函数组成的,所以,在main()函数调用其他的函数的时候,其它函数必须在这之前就要先定义了的,这是最主要要注意的,