这是二级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; }