Re: [討論] strtok分解字串 二維陣列
※ 引述《HILL33LOVE (就是愛希爾)》之銘言:
: 最近在看分解字串的功能時,
: 看到用來存每段字串都是用二維陣列去存的
: 想問一下,以下例子有可以改寫的地方嗎?
: 一定要用二維的方式去儲存嗎?
: 謝謝
: int i = 0;
: char *tokenPtr;
: char *delim = "@";
: char p[6][30];
: char filename[50] = "@PID@VID@VER@OS@Audio";
: tokenPtr = strtok(filename, delim);
: while(tokenPtr != NULL)
: {
: strcpy(p[i], tokenPtr);
: printf("p[%d] = %s\n", i, p[i]);
: i++;
: tokenPtr = strtok(NULL, delim);
: }
你在意的應該是希望不要用到 6x30 這麼大的空間?
那你可以把它們「接」在同一個陣列裡面.
然後再用另一個陣列存指標指向這一個陣列:
char p[50];
char *pp[6];
...
pp[0] = p;
pp[1] = p+5;
pp[2] = p+7;
類似這樣..
(假設你空的間隔是夠大的)
那就可以這樣用:
printf("p[%d] = %s\n", i, pp[i]);
(這次應該沒有再 undefined 或 unspecified 了吧 ^^|)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.242.246.249
→
06/29 10:19, , 1F
06/29 10:19, 1F
推
06/29 11:08, , 2F
06/29 11:08, 2F
→
06/29 11:09, , 3F
06/29 11:09, 3F
→
06/29 17:25, , 4F
06/29 17:25, 4F
→
06/29 17:29, , 5F
06/29 17:29, 5F
推
07/01 01:10, , 6F
07/01 01:10, 6F
→
07/06 05:39, , 7F
07/06 05:39, 7F
※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:18)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):