请编写一个函数void fun(char a【】,char b【】,int n)

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:37:43
输入void fun(char a【】,char b【】,int n),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符串存放在b所指的数组中,n中存放指定的下标。例如输入一个字符串:World,然后输入3,则调用该函数的结果是:Word。
#include <stdio.h>
char *fun ( char *s, char *t)
{

}

main( )
{ char a[20],b[20];
void NONO ( );
printf("Input 1th string:") ;
gets( a);
printf("Input 2th string:") ;
gets( b);
printf("%s\n",fun (a, b ));
NONO ();
}

void NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
char a[20], b[20] ;

fp = fopen("D:\\Exam\\24010001\\in.dat","r") ;
wf = fopen("D:\\Exam\\24010001\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%s %s", a, b) ;
fprintf(wf, "%s\n", fun(a, b)) ;
}
fclose(fp) ;

void fun(char a[],char b[],int n)
{
char * p1=a;
char * p2=b;
while(p1!='\0')
{
if(p1!=a+n) *p2++=*p1++; //当非指定字符时: p2复制p1字符
else p1++; //是指定下标字符,原字符串跳一个就OK
}
p2='\0'; //字符串结尾要个'\0'
}

不对吧,你题上的函数是3个参数,怎么后来的题目变成2个了。你再看看。。。

void fun (char a[], char b[], int n)
{
int i,j;
for(j=0;a[j];j++)
b[j]=a[j];
for(i=n;i<=j;i++)
{
b[i]=b[i+1];
b[j]=0;
}

}

形参和实参没有一一对应.
你想问的是什么呢?