
c语言简单问题,一道教科书上的关于'extern'例题写出来运行不出正确结果. 求高手帮忙
程序f1.c中的代码如下:#include"stdio.h"main(){externdelete_char(charstr[],charch);charc;charst...
程序f1.c中的代码如下:
#include "stdio.h"
main(){
extern delete_char(char str[],char ch);
char c;
char str[80];
gets(str); getchar();
scanf("%c",&c);
delete_char(str,c);
puts(str);
}
程序f2.c中的代码如下;
void delete_char(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';
}
本例题功能先输入一个字符串,然后输入一个单个字符,遍历这个字符串查找这个单个字符,找到既删除.打的有点仓促,但应该是差不多没有bug,希望能有高手指点. 展开
#include "stdio.h"
main(){
extern delete_char(char str[],char ch);
char c;
char str[80];
gets(str); getchar();
scanf("%c",&c);
delete_char(str,c);
puts(str);
}
程序f2.c中的代码如下;
void delete_char(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';
}
本例题功能先输入一个字符串,然后输入一个单个字符,遍历这个字符串查找这个单个字符,找到既删除.打的有点仓促,但应该是差不多没有bug,希望能有高手指点. 展开
1个回答
展开全部
将f1.c修改如下
#include "stdio.h"
main(){
extern delete_char(char str[],char ch);
char c;
char str[80];
gets(str);
scanf("%c",&c);
getchar();
delete_char(str,c);
puts(str);
getchar();
}
你写的f1.c中 getchar()的位置放错了,把你输入的字符接收掉了,反而c接收到的是回车符,所以应将getchar放在输入语句的后面,,最后一个gechar是为了显示结果加进去的,没有什么太大意义。。
#include "stdio.h"
main(){
extern delete_char(char str[],char ch);
char c;
char str[80];
gets(str);
scanf("%c",&c);
getchar();
delete_char(str,c);
puts(str);
getchar();
}
你写的f1.c中 getchar()的位置放错了,把你输入的字符接收掉了,反而c接收到的是回车符,所以应将getchar放在输入语句的后面,,最后一个gechar是为了显示结果加进去的,没有什么太大意义。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询