鱼C论坛

 找回密码
 立即注册
查看: 3050|回复: 0

有一个字符串,内有若干个字符,令输入一个字符,要求程序将字符串中该字符删去。用外

[复制链接]
发表于 2014-2-7 15:16:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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],又木有返回值?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 04:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表