例子如下:
#include<stdio.h>
#include<string.h> /*strcat頭檔案*/
int main()
{
char s1[]="1,2,3,4,5",s2[]="qwer";
gets(s1);
puts("s1="); #會自動換行
puts(s1);
strcat(s1,s2);
printf("s1的記憶體大小:%d\n",sizeof(s1));
printf("%s\n",s1);
return 0;
}
運行結果: 輸入ABC
ABC
s1=
ABC
s1的記憶體大小:10
ABCqwer
gets會將結束標志回車自動轉換為\0,所以原有字串其實記憶體大小(sizeof查看一下)是不變的,只是接下來strcat連接時以第一個引數字串的\0為起點連接的,
可見s1記憶體大小是10位元組,即1,2,3,4,5\0
gets(s1)之后(假設輸入的是ABC回車)s1其實變成了ABC\03,4,5\0
連接時是從ABC后的\0開始連接的,所以就成了ABCqwer
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/151903.html
標籤:java
