C语言里面gets(str)会自动添加'\0'吗? 用gets()函数接收字符串,会在最后自动加上字符串结束记号...

C\u8bed\u8a00\u4e2d\uff0c\u7528gets()\u51fd\u6570\u63a5\u6536\u5b57\u7b26\u4e32\uff0c\u4f1a\u5728\u6700\u540e\u81ea\u52a8\u52a0\u4e0a\u5b57\u7b26\u4e32\u7ed3\u675f\u8bb0\u53f7'\0'\u5417\uff1f

gets,scanf\u90fd\u4f1a\u5728\u672b\u5c3e\u52a0\u4e0a\0\u7684\uff0c\u8981\u4e0d\u7136\u5b57\u7b26\u4e32\u5c31\u6ca1\u6cd5\u7ed3\u675f\u4e86\uff1b
\u4ed6\u4eec\u7684\u4e0d\u540c\u5728\u4e8e\uff0cscanf\u78b0\u5230\u7f13\u51b2\u533a\u91cc\u9762\u7684\u7a7a\u5b57\u7b26(\u7a7a\u683c\uff0ctab\uff0c\u56de\u8f66\uff0c\u6362\u884c\u5c31\u4f1a\u622a\u65ad\u5e76\u6dfb\u52a0\0)\uff0c\u800cgets\u662f\u8981\u7b49\u56de\u8f66\u624d\u622a\u65ad\u5b57\u7b26\u4e32\u5e76\u6dfb\u52a0\0\u7684
\u6bd4\u5982\u7528\u8f93\u5165\u5b57\u7b26\u4e32:abcdefg hijk\u56de\u8f66
\u7528scanf\u7684\u8bdd\uff0c\u4f1a\u5f97\u5230abcdefg\uff0c\u800cgets\u5219\u662f:abcdefg hijk

\u4e0d\u4f1a\u81ea\u52a8\u52a0\0\uff0c\u4f46\u4f1a\u8bb0\u5f55\u957f\u5ea6\uff0c\u4f60\u53ef\u4ee5\u7528str[strlen\uff08str\uff09]=\u2018\0\u2019,\u5728\u672b\u5c3e\u81ea\u5df1\u52a0\u4e0a~~

会的

gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。其调用格式为:
gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。

内层for循环中没有限制i的范围,导致越界。

  • C璇█閲岄潰gets(str)浼鑷姩娣诲姞'\0'鍚?
    绛旓細浼氱殑 gets()鍑芥暟鐢ㄦ潵浠庢爣鍑嗚緭鍏ヨ澶囷紙閿洏锛璇诲彇瀛楃涓鐩村埌鎹㈣绗︾粨鏉燂紝浣嗘崲琛岀浼氳涓㈠純锛岀劧鍚庡湪鏈熬娣诲姞'\0'瀛楃銆傚叾璋冪敤鏍煎紡涓猴細gets(s);鍏朵腑s涓哄瓧绗︿覆鍙橀噺锛堝瓧绗︿覆鏁扮粍鍚嶆垨瀛楃涓叉寚閽堬級銆
  • C璇█涓殑gets鍑芥暟闂!
    绛旓細gets(str)鏈夎竟鐣屾孩鍑虹殑鍙兘銆傛瘮濡備綘鐨剆tr瀹氫箟鍙湁80涓猚har鍗曞厓锛屼絾杈撳叆鐨勬椂鍊欏嵈杈撳叆浜80涓互涓婄殑瀛楃锛岄偅涔堝氨鍙戠敓浜嗘孩鍑恒c璇█鏄笉妫鏌ヨ竟鐣屾孩鍑虹殑锛岀紪璇戜笉鎶ラ敊銆備絾婧㈠嚭浼氱牬鍧忓唴瀛樹腑鐨勬暟鎹紝浜х敓涓嶅彲棰勬枡鐨勫悗鏋溿傛墍浠ヨ灏介噺閬垮厤銆備絾骞冲父缁冧範鐨勬椂鍊檊ets()鍑芥暟鏄粡甯哥敤鍒扮殑锛屽洜涓哄畠鐢ㄨ捣鏉ュ緢鏂逛究銆傛垜浠幇鍦...
  • C 璇█鏍囧噯杈撳叆鎿嶄綔涓 ,gets() 鍑芥暟涓娆″彧鍙鍙栦竴涓瓧绗︺傝繖鍙ヨ瘽瀵逛笉...
    绛旓細涓嶅銆俫ets() 鍑芥暟鍙互璇诲彇涓鏁磋瀛楃涓诧紝鑰屼笉鏄竴涓瓧绗︺俫ets() 鍑芥暟鐨勪綔鐢ㄦ槸浠庢爣鍑嗚緭鍏ユ祦 stdin 涓鍙栦竴琛屽瓧绗︼紝骞跺皢鍏跺偍瀛樺湪鎸囧畾鐨勫瓧绗︿覆鏁扮粍涓備緥濡備笅闈㈢殑浠g爜锛歚``char str[100];gets(str);```杩欎細灏嗚緭鍏ョ殑涓鏁磋瀛楃璇诲彇鍒 str 鏁扮粍涓傚洜姝わ紝gets() 鍑芥暟鍙互璇诲彇澶氫釜瀛楃锛岃屼笉鏄...
  • C璇█瀛楃涓gets(str)
    绛旓細鍦╯canf("%c",&ch);涔嬪悗鍔犱笂getchar();include<stdio.h> int main(void)printf("Input a character: ");scanf("%c",&ch);fflush(stdin);//鍔犱笂杩欏彞锛屾竻鎺夎緭鍏ュ瓧绗﹀悗锛屼綘鍐嶈緭鍏ョ殑鍥炶溅绗 printf("Input a string: ");char str[80];gets(str);printf("%c\n",ch);puts(str);return...
  • C璇█瀛楃涓gets(str)
    绛旓細"); scanf("%c",&ch); fflush(stdin);//鍔犱笂杩欏彞锛屾竻鎺夎緭鍏ュ瓧绗﹀悗锛屼綘鍐嶈緭鍏ョ殑鍥炶溅绗 printf("Input a string: "); char str[80]; gets(str); printf("%c\n",ch); puts(str); return 0;} 杩欐牱灏辨纭簡锛氳繖涓棶棰樻槸姣旇緝鍏稿瀷鐨勶紝涓昏灏辨槸鐢变簬scanf鍑芥暟鐨勪笉瀹夊叏鎬ч犳垚鐨勩
  • c璇█gets()鐨勭敤娉曟槸浠涔?
    绛旓細char *gets(char *str);杩欎釜鍑芥暟寰堢畝鍗曪紝鍙湁涓涓弬鏁般傚弬鏁扮被鍨嬩负 char* 鍨嬶紝鍗 str 鍙互鏄竴涓瓧绗︽寚閽堝彉閲忓悕锛屼篃鍙互鏄竴涓瓧绗︽暟缁勫悕銆俫ets() 鍑芥暟鐨勫姛鑳芥槸浠庤緭鍏ョ紦鍐插尯涓鍙栦竴涓瓧绗︿覆瀛樺偍鍒板瓧绗︽寚閽堝彉閲 str 鎵鎸囧悜鐨勫唴瀛樼┖闂淬備笅闈㈠皢鍓嶉潰涓娇鐢 scanf 杈撳叆瀛楃涓茬殑绋嬪簭鏀逛竴涓嬶細include <...
  • 涓嬮潰C璇█鍑芥暟鐨勪綔鐢:puts(str),gets(str),strcmp(str1,str2),strcp...
    绛旓細puts(str)锛氳緭鍑哄瓧绗︿覆str鐨勫唴瀹广gets(str)锛氳緭鍏ュ瓧绗︿覆锛屽瓨鍏tr琛ㄧず鐨勭┖闂淬俿trcmp(str1,str2)锛氭瘮杈冧袱涓瓧绗︿覆锛宻tr1>str2杩斿洖鍊>0,str1==str2杩斿洖鍊间负0锛宻tr1<str2杩斿洖鍊<0 strcpy(str1,str2)锛氬皢瀛楃涓瞫tr2澶嶅埗鍒皊tr1銆
  • C璇█gets鍑芥暟鐨勭敤娉,鑳界敤浠g爜涓句釜渚嬪瓙涔
    绛旓細1銆gets() 鍑芥暟鏄粠閿洏杈撳叆瀛楃涓诧紝璇ュ嚱鏁板彧鏈変竴涓弬鏁般傚弬鏁扮被鍨嬩负 char* 鍨嬶紝鍗 str 鍙互鏄竴涓瓧绗︽寚閽堝彉閲忓悕锛屼篃鍙互鏄竴涓瓧绗︽暟缁勫悕銆傛墦寮缂栬緫鍣紝鏂板缓涓涓c璇█鏂囦欢锛屽紩鍏ユ爣鍑嗗簱骞舵柊寤轰富鍑芥暟锛2銆乬ets() 鍑芥暟鐨勫姛鑳芥槸浠庤緭鍏ョ紦鍐插尯涓鍙栦竴涓瓧绗︿覆瀛樺偍鍒板瓧绗︽寚閽堝彉閲 str 鎵鎸囧悜鐨勫唴瀛樼┖闂...
  • c璇█scanf 鍜gets瀵瑰瓧绗︿覆鐨勮緭鍏
    绛旓細褰撶敤scanf("%s",str);鏉ヨ幏鍙栬繖娈佃嫳鏂囨枃瀛楃殑鏃跺欙紝杈撳嚭浼氬湪绗竴涓┖鏍肩殑鍦版柟绋嬪簭缁撴潫锛屽涓嬪浘锛氳屼娇鐢gets()鏃朵笉浼氬嚭鐜拌繖绉嶆儏鍐碉紝鍙互鎶婄┖鏍间箣鍚庣殑瀛楃涔熼兘姝e父杈撳嚭鏉ャ傜涓娆¤緭鍏ello world!鍚庯紝瀛楃涓睭ello world!閮戒細琚鍒拌緭鍏ョ紦鍐插尯涓紝鑰宻canf()鍑芥暟鍙栨暟鎹槸閬囧埌鍥炶溅銆佺┖鏍笺乀AB灏变細鍋滄锛屼篃...
  • gets() c璇█
    绛旓細gets()鎷彿涓鐨勫煎簲璇ユ槸鍦板潃鍊硷紝琛ㄧず瀛楃涓插啓鍏ョ殑棣栧湴鍧銆str涓烘暟缁勫悕琛ㄧず锛屼害涓哄湴鍧鍊笺備絾*str骞朵笉琛ㄧず鍦板潃鍊兼槸琛ㄧず鏁扮粍绗竴涓厓绱犵殑鏁板硷紝char *str鏄0鏄庝簡涓涓瓧绗﹀瀷鎸囬拡鍙仛str锛屾晠鍚庝袱绉嶅潎閿欒銆
  • 扩展阅读:c语言gets 的用法 举例 ... c语言gets()函数 ... gets str 的功能 ... gets a 是什么意思 ... gets str 是什么意思 ... c语言gets为啥不能用 ... c语言中gets是怎么回事 ... c语言fgets 的用法 ... c语言中gets s 是什么意思 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网