C语言中gets函数读取字符后,是一个一个分别依次存储到a[0]a[1]a.....还是怎么存的?求大佬赐教,感激! c语言 这里gets_s读取字符,输入A,能输出a[0]为A...
c\u8bed\u8a00\u91cc\u9762gets(a)\u662f\u4ec0\u4e48\u610f\u601dc\u8bed\u8a00\u91ccgets(a) \u8868\u793a\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\u5230\u6570\u7ec4a\uff0ca\u8868\u793a\u8bfb\u53d6\u4e00\u4e2a\u5b57\u7b26\u4e32\u5b58\u5165a\u4e2d,\u5b57\u7b26\u4e32\u8f93\u5165\u7ed3\u675f\u6807\u5fd7\u4e3a\u6362\u884c\u7b26\u3002
\u6bd4\u5982 \u8f93\u5165321 cs dd\u56de\u8f66
a\u4e2d\u5b58\u50a8\u4e3a 321 cs dd
\u6269\u5c55\u8d44\u6599\uff1a
gets\u51fd\u6570\u76f8\u5173\u77e5\u8bc6\uff1a
1\u3001\u6ce8\u610f\u4e8b\u9879\uff1agets\u4ece\u6807\u51c6\u8f93\u5165\u8bbe\u5907\u8bfb\u5b57\u7b26\u4e32\u51fd\u6570\uff0c\u5176\u53ef\u4ee5\u65e0\u9650\u8bfb\u53d6\uff0c\u4e0d\u4f1a\u5224\u65ad\u4e0a\u9650\uff0c\u4ee5\u56de\u8f66\u7ed3\u675f\u8bfb\u53d6\uff0c\u6240\u4ee5\u7f16\u7a0b\u65f6\u5e94\u8be5\u786e\u4fddbuffer\u7684\u7a7a\u95f4\u8db3\u591f\u5927\uff0c\u4ee5\u4fbf\u5728\u6267\u884c\u8bfb\u64cd\u4f5c\u65f6\u4e0d\u53d1\u751f\u6ea2\u51fa\u3002
2\u3001\u529f\u80fd\uff1a\u4ecestdio\u6d41\u4e2d\u8bfb\u53d6\u5b57\u7b26\u4e32\uff0c\u76f4\u81f3\u63a5\u53d7\u5230\u6362\u884c\u7b26\u6216EOF\u65f6\u505c\u6b62\uff0c\u5e76\u5c06\u8bfb\u53d6\u7684\u7ed3\u679c\u5b58\u653e\u5728buffer\u6307\u9488\u6240\u6307\u5411\u7684\u5b57\u7b26\u6570\u7ec4\u4e2d\u3002\u6362\u884c\u7b26\u4e0d\u4f5c\u4e3a\u8bfb\u53d6\u4e32\u7684\u5185\u5bb9\uff0c\u8bfb\u53d6\u7684\u6362\u884c\u7b26\u88ab\u8f6c\u6362\u4e3a\u2018\0\u2019\u7a7a\u5b57\u7b26\uff0c\u5e76\u7531\u6b64\u6765\u7ed3\u675f\u5b57\u7b26\u4e32\u3002
3\u3001\u8fd4\u56de\u503c\uff1a\u8bfb\u5165\u6210\u529f\uff0c\u8fd4\u56de\u4e0e\u53c2\u6570buffer\u76f8\u540c\u7684\u6307\u9488\uff1b\u8bfb\u5165\u8fc7\u7a0b\u4e2d\u9047\u5230EOF(End-of-File)\u6216\u53d1\u751f\u9519\u8bef\uff0c\u8fd4\u56deNULL\u6307\u9488\u3002\u6240\u4ee5\u5728\u9047\u5230\u8fd4\u56de\u503c\u4e3aNULL\u7684\u60c5\u51b5\uff0c\u8981\u7528ferror\u6216feof\u51fd\u6570\u68c0\u67e5\u662f\u53d1\u751f\u9519\u8bef\u8fd8\u662f\u9047\u5230EOF\u3002
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1gets\u51fd\u6570
C\u8bed\u8a00\u91cc\u7684gets()\u51fd\u6570\u529f\u80fd\u662f\u4ece\u8f93\u5165\u7f13\u5b58\u4e2d\u8bfb\u53d6\u591a\u4e2a\u5b57\u7b26\uff0c\u9047\u5230\u56de\u8f66\u7b26\u65f6\uff0c\u7ed3\u675f\u8f93\u5165\u3002
\u5f53\u4f7f\u7528gets()\u51fd\u6570\u4e4b\u524d\u6709\u8fc7\u6570\u636e\u8f93\u5165\uff0c\u5e76\u4e14\uff0c\u64cd\u4f5c\u8005\u8f93\u5165\u4e86\u56de\u8f66\u786e\u8ba4\uff0c\u8fd9\u4e2a\u56de\u8f66\u7b26\u6ca1\u6709\u88ab\u6e05\u7406\uff0c\u88ab\u4fdd\u5b58\u5728\u8f93\u5165\u7f13\u5b58\u4e2d\u65f6\uff0cgets()\u4f1a\u8bfb\u5230\u8fd9\u4e2a\u5b57\u7b26\uff0c\u7ed3\u675f\u8bfb\u5b57\u7b26\u64cd\u4f5c\u3002\u56e0\u6b64\uff0c\u4ece\u7528\u6237\u8868\u9762\u4e0a\u770b\uff0cgets()\u6ca1\u6709\u8d77\u4f5c\u7528\uff0c\u8df3\u8fc7\u4e86\u3002
\u89e3\u51b3\u529e\u6cd5\uff1a
\u65b9\u6cd5\u4e00\u3001\u5728gets()\u524d\u52a0fflush(stdin); //\u5f3a\u884c\u6e05\u9664\u7f13\u5b58\u4e2d\u7684\u6570\u636e\uff08windows\u4e0b\u53ef\u884c\uff09
\u65b9\u6cd5\u4e8c\u3001\u6839\u636e\u7a0b\u5e8f\u4ee3\u7801\uff0c\u786e\u5b9a\u524d\u9762\u662f\u5426\u6709\u8f93\u5165\u8bed\u53e5\uff0c\u5982\u679c\u6709\uff0c\u5219\u589e\u52a0\u4e00\u4e2agetchar()\u547d\u4ee4\uff0c\u7136\u540e\u518d\u8c03\u7528 gets()\u547d\u4ee4\u3002
\u65b9\u6cd5\u4e09\u3001\u68c0\u67e5\u8f93\u5165\u7ed3\u679c\uff0c\u5982\u679c\u5f97\u5230\u7684\u5b57\u7b26\u4e32\u662f\u7a7a\u4e32\uff0c\u5219\u7ee7\u7eed\u8bfb\u5165\uff0c\u5982\uff1a
char str[100]={0};
do {
gets(str);
} while( !str[0] );
gets()以回车为结束符,将输入存到缓冲区,然后在识别到回车后将缓冲区数据移到数组s的地址下,当你的输入数据大于200个时,s数组超限会报错。
如果想要避免由输入超限引起的错误,可以调用以下函数:
fgets(s,200,stdin);
这样的话输入超出200的部分就会被截除,也就不存在数组超限的问题了。
调用gets(s)函数读入字符串,会将字符串挨个放入s里面。即s[0]表示读入的第零个元素,是s[1]表示第一个元素,以此类推。
绛旓細gets浠庢爣鍑嗚緭鍏ヨ澶璇诲瓧绗︿覆鍑芥暟锛屽叾鍙互鏃犻檺璇诲彇锛屼笉浼氬垽鏂笂闄愶紝浠ュ洖杞︾粨鏉熻鍙栵紝鎵浠ョ▼搴忓憳搴旇纭繚buffer鐨勭┖闂磋冻澶熷ぇ锛屼互渚垮湪鎵ц璇绘搷浣滄椂涓嶅彂鐢熸孩鍑恒俫ets(s);璇诲彇瀛楃涓鏃讹紝棣栧瓧绗﹀瓨鏀惧湪s[0]涓紝鎺ョ潃渚濇瀛樻斁鍦╯[1],s[2],鈥︹︿腑銆傝鍙栧埌鍥炶溅绗︽椂锛屽皢绌哄瓧绗'\0'瀛樺叆s鏁扮粍涓紝浣滀负瀛楃涓茬粨...
绛旓細鍦C璇█涓锛gets鍑芥暟鏄敤浜庝粠鏍囧噯杈撳叆璁惧锛堝閿洏锛璇诲彇瀛楃涓鐨勶紝鍏跺伐浣滃師鐞嗘槸璇诲彇鐩村埌閬囧埌鎹㈣绗︼紝浣嗘崲琛岀浼氳蹇界暐锛岀劧鍚庡湪璇诲彇鐨瀛楃涓叉湯灏捐嚜鍔ㄦ坊鍔犱竴涓'\0'瀛楃浠ヨ〃绀哄瓧绗︿覆缁撴潫銆傚叾鍩烘湰璋冪敤褰㈠紡涓猴細gets(s)锛屽叾涓璼鏄瓨鍌ㄥ瓧绗︿覆鐨勫彉閲忥紝鍙互鏄瓧绗︿覆鏁扮粍鍚嶆垨鎸囧悜瀛楃涓茬殑鎸囬拡銆傚鏋滀粎浣跨敤鍗曚釜瀛楃...
绛旓細gets,scanf閮戒細鍦ㄦ湯灏惧姞涓奬0鐨勶紝瑕佷笉鐒瀛楃涓灏辨病娉曠粨鏉熶簡锛涗粬浠殑涓嶅悓鍦ㄤ簬锛宻canf纰板埌缂撳啿鍖閲岄潰鐨绌哄瓧绗(绌烘牸锛宼ab锛屽洖杞︼紝鎹㈣灏变細鎴柇骞舵坊鍔燶0)锛岃実ets鏄绛夊洖杞︽墠鎴柇瀛楃涓插苟娣诲姞\0鐨勶紱姣斿鐢ㄨ緭鍏ュ瓧绗︿覆:abcdefg hijk鍥炶溅锛涚敤scanf鐨勮瘽锛屼細寰楀埌abcdefg锛岃実ets鍒欐槸:abcdefg hijk銆C璇█鏄竴闂...
绛旓細c璇█閲実ets(a) 琛ㄧず杈撳叆涓涓瀛楃涓插埌鏁扮粍a锛宎琛ㄧず璇诲彇涓涓瓧绗︿覆瀛樺叆a涓,瀛楃涓茶緭鍏ョ粨鏉熸爣蹇椾负鎹㈣绗︺傛瘮濡 杈撳叆321 cs dd鍥炶溅 a涓瓨鍌ㄤ负 321 cs dd
绛旓細gets鍑芥暟鐨勭敤娉曞涓嬶細gets鏄竴涓爣鍑嗗簱鍑芥暟锛屽湪C璇█涓甯稿父琚敤鏉ヤ粠鏍囧噯杈撳叆锛堥氬父鏄敭鐩橈級璇诲彇涓鏁磋鏂囨湰銆傜劧鑰岋紝gets鍑芥暟鍥犱负鍏跺畨鍏ㄩ棶棰橈紝宸茬粡鍦–11鏍囧噯涓寮冪敤锛屽苟寤鸿浣跨敤鏇村畨鍏ㄧ殑fgets鍑芥暟鏇夸唬銆俫ets鍑芥暟鐨勫師鍨嬫槸char*gets锛坈har*str锛夛紱锛屽畠鎺ユ敹涓涓瓧绗︽寚閽堜綔涓哄弬鏁帮紝鐒跺悗灏嗚鍙栧埌鐨勮緭鍏瀛楃涓鏀惧叆...
绛旓細C璇█涓璯ets鍑芥暟涓巊etchar鍑芥暟鐨勫尯鍒 涓銆佸嚱鏁拌緭鍏ユ柟闈 1銆乬ets()鍑芥暟鐢ㄦ潵浠庢爣鍑嗚緭鍏ヨ澶(閿洏)璇诲彇瀛楃涓茬洿鍒板洖杞︾粨鏉燂紝浣嗗洖杞︾涓嶅睘浜庤繖涓瓧绗︿覆銆傚叾璋冪敤鏍煎紡涓猴細gets(s)锛泂涓哄瓧绗︿覆鍙橀噺(瀛楃涓叉暟缁勫悕鎴栧瓧绗︿覆鎸囬拡锛夛紝gets(s)鍑芥暟涓巗canf("%s", &s)鐩镐技锛屼絾涓嶅畬鍏ㄧ浉鍚屻2銆佽実etchar鍑芥暟杩愯鏃...
绛旓細C璇█涓璯ets鍑芥暟鐨勮缁嗙敤娉 涓銆佸嚱鏁版杩 gets鍑芥暟鏄疌璇█涓殑涓涓爣鍑嗚緭鍏ュ嚱鏁帮紝鐢ㄤ簬浠庢爣鍑嗚緭鍏璇诲彇涓琛屾暟鎹苟瀛樺偍鍦瀛楃鏁扮粍涓傝鍑芥暟浼氳鍙栫洿鍒伴亣鍒版崲琛岀涓烘鐨勬墍鏈夊瓧绗︺備簩銆佸嚱鏁板師鍨 鍦–璇█涓紝gets鍑芥暟鐨勫師鍨嬩负锛歝 char *gets;鍏朵腑锛宻tr鏄瓧绗︽暟缁勭殑鎸囬拡锛岀敤浜庡瓨鍌ㄨ緭鍏ョ殑鏁版嵁銆傚嚱鏁拌繑鍥炴寚鍚憇tr鐨...
绛旓細鍦C璇█涓锛gets鍑芥暟鐢ㄤ簬浠庢爣鍑嗚緭鍏ワ紙閫氬父鏄敭鐩橈級璇诲彇涓琛瀛楃涓锛岀洿鍒伴亣鍒版崲琛岀锛'\n'锛夋垨璇诲彇鍒癊OF锛圗nd Of File锛屾枃浠剁粨鏉熸爣蹇楋級銆俫ets鍑芥暟閫氬父鐢ㄤ簬璇诲彇鐢ㄦ埛杈撳叆鐨勫瓧绗︿覆锛屼絾鍦ㄥ疄闄呭簲鐢ㄤ腑闇瑕佹敞鎰忓畨鍏ㄦч棶棰橈紝鍥犱负璇ュ嚱鏁版棤娉曢檺鍒惰緭鍏ョ殑闀垮害锛屽鏄撳鑷寸紦鍐插尯婧㈠嚭銆傛垜浠娇鐢╬rintf鍑芥暟杈撳嚭璇诲彇鍒扮殑瀛楃涓...
绛旓細C璇█涓璯ets鐨勭敤娉 鍦–璇█涓紝gets鍑芥暟鏄竴涓爣鍑嗗簱鍑芥暟锛岀敤浜庝粠鏍囧噯杈撳叆璁惧璇诲彇瀛楃涓层傜劧鑰岋紝鐢变簬瀛樺湪瀹夊叏闂锛屽畠宸茬粡鍦ㄧ幇浠g紪绋嬩腑琚簾寮冿紝涓嶆帹鑽愪娇鐢ㄣ俫ets鍑芥暟浼氬皢璇诲彇鍒扮殑瀛楃涓插瓨鍌ㄥ湪str鎸囧悜鐨勫唴瀛樼┖闂达紝骞跺湪閬囧埌鎹㈣绗︺佹枃浠剁粨鏉熺鎴栨帴鏀跺埌EOF淇″彿鏃跺仠姝㈣鍙栥傜劧鑰岋紝鐢变簬gets鍑芥暟鏃犳硶鎺у埗杈撳叆鐨...
绛旓細C璇█涓璯ets鐨勬剰鎬 鍦–璇█涓紝gets鏄竴涓爣鍑嗗簱鍑芥暟锛岀敤浜庝粠鏍囧噯杈撳叆璇诲彇涓琛屾枃鏈紝鐩村埌閬囧埌鎹㈣绗︿负姝傝鍑芥暟灏嗚鍙栫殑鏂囨湰瀛樺偍鍦ㄦ彁渚涚殑瀛楃鏁扮粍涓1. 鍑芥暟瀹氫箟涓庡姛鑳斤細gets鍑芥暟鏄疌璇█涓殑涓涓佹棫鐨勮緭鍏ュ嚱鏁般傚畠鐨勫師鍨嬮氬父鏄痐char *gets`銆傚叾涓紝str鏄竴涓瓧绗︽暟缁勶紝鐢ㄤ簬瀛樺偍浠庤緭鍏ユ祦涓璇诲彇鐨勫瓧绗...