[問題] 從字元陣列中複製子區間的字元

看板C_and_CPP (C/C++)作者 (要有決心啊)時間13年前 (2013/03/28 19:33), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/1
感覺這個問題好像很簡單, 但是我C++的基礎不太好, 今天試了一整天都試不太出來, 也想不到什麼比較好的關鍵字上網查詢, 問題簡單的說就是有一個字元陣列, 譬如說:char a[8] = "abcdefgh"; 我想要用另外一個字元陣列來存取其中的值, 譬如說 char b[2] = a[3:4]; 預期會有 b = "de";的結果 在MatLab下很簡單的就 b = a(3:4)就OK了, 但在C++下都弄不出來Q_Q 能否有好心人可以指點一下呢?謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.75.101.183

03/28 19:40, , 1F
strcpy 或是 memcpy ,另外,你應該要用 char a[9]="a...h"
03/28 19:40, 1F

03/28 19:40, , 2F
因為字串的最後還有一個 '\0'
03/28 19:40, 2F

03/28 19:42, , 3F
還有一個是 strncpy
03/28 19:42, 3F

03/28 19:59, , 4F
有試過strncpy,但是比較不方便的是他直接轉成string的樣
03/28 19:59, 4F

03/28 20:00, , 5F
子,這樣b反而要預留3個byte來存成b="de\0",但我是希望可
03/28 20:00, 5F

03/28 20:02, , 6F
以以字元陣列的形式b的size為2,值即為"de",不知道這樣OK
03/28 20:02, 6F

03/28 20:03, , 7F
那就是 memcpy ,單純當陣列用
03/28 20:03, 7F

03/29 12:26, , 8F
snprintf(b, sizeof(b), "%s", a+3);
03/29 12:26, 8F
文章代碼(AID): #1HL2gCAa (C_and_CPP)
文章代碼(AID): #1HL2gCAa (C_and_CPP)