有一个字符串,内有若干个字符,令输入一个字符,要求程序将字符串中该字符删去。用外
有一个字符串,内有若干个字符,令输入一个字符,要求程序将字符串中该字符删去。用外部函数实现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;
enter_string(str);
scanf("%c",&c);
delete_string(str,c);
print_string(str);
}
file2.c
#include <stdio.h>
void enter_string(char str)
{
gets(str);
}
file3.c
#include <stdio.h>
void delete_string(char str[],char ch)
{
int i,j;
for (i=j=0;str!='\0';i++)
if(str!=ch)
{
str=str;
}
str='\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自己作为实参。就像
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还是str,又木有返回值?
页:
[1]