91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統下C語言gets函數出現警告問題的解決方法

發布時間:2020-10-06 16:18:15 來源:腳本之家 閱讀:237 作者:daisy 欄目:編程語言

發現問題

最近在Linux下編譯C語言,用到gets這個函數,代碼如下:

#include <stdio.h>

#include <string.h>

#include <string.h>

void main(){

char s[100]; // 存放輸入的字符串

int i, j, n;

printf("輸入字符串:");

gets(s);

n=strlen(s);

for(i=0,j=n-1;i<j;i++,j--)

if(s[i]!=s[j]) break;

if(i>=j)

printf("是回文串\n");

else

printf("不是回文串\n");

}

Linux系統下C語言gets函數出現警告問題的解決方法

但是出現如下警告,

[linuxidc@localhost linuxidc.com]$ gcc linuxidc.c -o linuxidc.com

linuxidc.c: 在函數‘main'中:

linuxidc.c:8:5: 警告:不建議使用‘gets'(聲明于 /usr/include/stdio.h:638) [-Wdeprecated-declarations]

gets(s);

^

/tmp/ccvwVatT.o:在函數‘main'中:

linuxidc.c:(.text+0x1f): 警告:the `gets' function is dangerous and should not be used.

Linux系統下C語言gets函數出現警告問題的解決方法

問題解決

原因就在于,gets不會去檢查字符串的長度,如果字符串過長就會導致溢出。如果溢出的字符覆蓋了其他一些重要數據就會導致不可預測的后果。在man手冊里也有關于gets這樣的警告:

Never use gets().  Because it is impossible to tell without knowing the data in advance how many  characters  gets()  will  read,  and  because gets() will continue to store characters past the end of the buffer, it is extremely dangerous to use.  It has  been  used  to  break  computer security.

可以用scanf的掃描集來實現這一功能,只要在方括號中寫入“^\n”,即:直到輸入了回車才停止掃描。下面來演示這一用法:

#include <stdio.h>

#include <string.h>

#include <string.h>

void main(){

char s[100]; // 存放輸入的字符串

int i, j, n;

printf("輸入字符串:");

scanf("%[^\n]",s); //改成這個就OK

n=strlen(s);

for(i=0,j=n-1;i<j;i++,j--)

if(s[i]!=s[j]) break;

if(i>=j)

printf("是回文串\n");

else

printf("不是回文串\n");

}

Linux系統下C語言gets函數出現警告問題的解決方法

OK,問題解決。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平舆县| 兴和县| 涞源县| 恩平市| 通城县| 凤台县| 松溪县| 石楼县| 吴旗县| 秭归县| 偏关县| 洪雅县| 盐山县| 景泰县| 天等县| 皮山县| 德惠市| 新干县| 昭觉县| 凤翔县| 宜兰县| 紫阳县| 巴中市| 商南县| 长子县| 滨海县| 固阳县| 若羌县| 郴州市| 芦溪县| 区。| 长沙县| 咸宁市| 山阴县| 砚山县| 龙州县| 西丰县| 鹤山市| 花莲市| 会昌县| 酒泉市|