char e[14]=;
printf("%s\n",e+5);//列印從第六個字元開始的後續字元,e+5表示把陣列指標移到第6位
printf("%s\n",&e[5]);//列印從第六個字元開始的後續字元,&e[5]表示即第6位的位址,這一句表示第6個字位址開始列印
char sendmessage[68]= ;
char a[68]= ;
sendmessage[0] = 0xab;
sendmessage[1] = 0xa5;
sendmessage[2] = 0x00;
sendmessage[3] = 0x1d;
sendmessage[4] = 0x00;
sendmessage[5] = 0x01;
strcpy(&sendmessage[6],"user,password;admin,123456;");
sendmessage[33] = 0xdc;
sendmessage[34] = 0xab;
sendmessage[35] = 0xa5;
sendmessage[36] = 0x00;
sendmessage[37] = 0x1d;
sendmessage[38] = 0x00;
sendmessage[39] = 0x01;
strcpy(&sendmessage[40],"user,password;admin,789009;");
sendmessage[68] = 0xdc;
char b[27]=;
/* strncpy(b,sendmessage,7,27);
printf("%s\n",b);
memcpy(a,sendmessage,68);
memset(b, 0, 68);
memcpy(b, a + 34, 68);
printf("%s\n",b);
*/ memcpy(b, &sendmessage[6], 33);
printf("%s\n",b);
memmove(&sendmessage[0], &sendmessage[6], 33);
printf("%s\n",sendmessage);
int length = sizeof(sendmessage);
printf("1*************************=\n");
printf("%d\n",sizeof(sendmessage));//不會有00問題
printf("%d\n",strlen(sendmessage));//會有00問題
printf("2*************************=\n");
char tt[33]=;
memcpy(tt,sendmessage,33);//不會有00問題
printf("%s\n",sendmessage);
printf("%s\n",tt);
printf("3*************************=\n");
for(int i=0;i<33;i++)
printf("4*************************=\n");
strcat(sendmessage,tt);
for(int i=0;i<66;i++)
關於字元陣列和字元指標
include void main 對於字元陣列a,其中的內容是可以改變的。可以再次對某個元素賦值 如 a 2 r 正確 a中存放首字元的位址,但不可被改變。a adeafsa 錯誤 對於字元指標變數p,它指向了乙個字串常量,而常量被儲存在常量區,是不可改變的 如 p r 錯誤 不過可以對指標變數p...
關於指標 與 字元陣列
在我們寫 中使用到指標的字串時,經常會出現執行錯誤,大部分出現的錯誤是試圖去改變指標的字串的內容。指標的字串的內容是儲存在靜態資料區的,是不能夠改變的。需要使用字元陣列。例如改變 char p abcdef p 1 d 這是錯誤的不能改變裡面的內容,但是可以使用裡面的資料 char p abcdef...
關於字串陣列,指標定義陣列
今天測了乙個程式,發現了一些不懂的問題,下面貼上 和自己的一些想法。1.用指標指向乙個字串,並嘗試修改字串。char p hello p 2 c printf the word is s n p 編譯沒有問題,但是執行沒有任何的輸出。我們都知道p指向 hello 的首字母 h 的位址,但printf...