課程
/后端開發
/C
/C語言入門
不太理解為什么。
2019-02-15
源自:C語言入門 6-8
正在回答
你的代碼存在兩個漏洞:
首先,c語言中字符串不能用等號賦值,需要用strcpy;
其次,strcat需要第一個參數有足夠的空間,不然會導致內存溢出(s2的空間正好只能放下“我愛,”加一個‘\n’字符,具體占幾個字節視編譯器的編碼而定,反正是沒有多余的空間的)。
正確代碼(不唯一):
#include<stdio.h> #include<string.h> int?main(){ ????char?s1[100]=""; ????char?s2[]="我愛,"; ????char?s3[]="慕課網"; ????strcat(s1,?s2); ????strcat(s1,?s3); ????printf("%s\n",s1); ????return?0; }
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答字符串變量是什么?為什么c語言中不存在字符串變量?
1 回答什么是字符串變量
1 回答字符數組題,將字符s1的前k個字符賦給s2,為什么運行不了
2 回答為什么字符串常量 不用格式符?
1 回答字符串常量為什么不用格式符%s
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-02-16
你的代碼存在兩個漏洞:
首先,c語言中字符串不能用等號賦值,需要用strcpy;
其次,strcat需要第一個參數有足夠的空間,不然會導致內存溢出(s2的空間正好只能放下“我愛,”加一個‘\n’字符,具體占幾個字節視編譯器的編碼而定,反正是沒有多余的空間的)。
正確代碼(不唯一):