这是二级C(2013年版的一道题目),在网上没找到合适的代码,本人写的代码又出现了问题。
首先本人写的代码,只能说意思达到了,而且编译通过了,但是出现的第一个情况就是以前出现过没解决掉的情况。就是貌似每次用getchar写在外函数里面的时候,在主函数引用的时候出现无限输入的情况。理应按回车键会终止输出的。求高手帮忙解决当前问题,和这道题目的正解,谢谢!
首先本人写的代码,只能说意思达到了,而且编译通过了,但是出现的第一个情况就是以前出现过没解决掉的情况。就是貌似每次用getchar写在外函数里面的时候,在主函数引用的时候出现无限输入的情况。理应按回车键会终止输出的。求高手帮忙解决当前问题,和这道题目的正解,谢谢!
#include <stdio.h>
void mygets(char str[]){
char ch;
int i = 0;
while((ch = getchar()) != "\0"){
str[i] = ch;
i++;
}
}
void myputs(char str[]){
int i = 0;
char ch;
for(;;){
ch = str[i];
i++;
putchar( ch );
}
}
int main(){
char str[5];
mygets( str );
myputs( str );
return 0;
}
解决方案
20
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>
#include <iostream>
void mygets(char str[]){
char ch;
int i = 0;
while((ch = getchar()) != "\n"){
str[i] = ch;
i++;
}
str[i] = "\n";
}
void myputs(char str[]){
int i = 0;
char ch;
for(;;){
ch = str[i];
if(ch == "\n")
break;
i++;
putchar( ch );
}
}
int main(){
char str[5];
printf("Input less than 5\n");
mygets( str );
myputs( str );
return 0;
}