|  | 
 
| 
有一个字符串,内有若干个字符,令输入一个字符,要求程序将字符串中该字符删去。用外部函数实现
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  file1.c
 #include <stdio.h>
 void main ()
 {
 extern void enter_string(char star[]);
 extern void delete_string(char star[],char ch);
 extern void print_string(char str[]);
 char c;
 char str[80];
 enter_string(str);
 scanf("%c",&c);
 delete_string(str,c);
 print_string(str);
 }
 
 
 file2.c
 #include <stdio.h>
 void enter_string(char str[80])
 {
 gets(str);
 }
 
 
 file3.c
 #include <stdio.h>
 void delete_string(char str[],char ch)
 {
 int i,j;
 for (i=j=0;str[i]!='\0';i++)
 if(str[i]!=ch)
 {
 str[j++]=str[i];
 }
 str[j]='\0';
 
 file4.c
 #include <stdio.h>
 void print_string (char str[])
 {
 printf("%s\n",str);
 }
 
 
 请高手回答一下
 问题1:我想问为什么file1.c中
 形参extern void enter_string(char star[]);
 实参enter_string(str);
 为什么是str[80]自己作为实参。就像
 int max(int x,int y);
 int a,b,c;
 scanf("%d,%d",&a,&b);
 c=max(a,b),就像这样a,b做实参,而不是x,y;
 PS:不是问为什么是enter_string(str);
 而不是enter_string(str[]);
 
 问题2:为什么file2.c中
 gets()函数改成scanf()函数会报错?
 
 问题3:为什么file1.c中print_string(str);
 它怎么知道我要的是str[i]还是str[j],又木有返回值?
 | 
 |