您不必命令分成獨立的char
陣列 - 所有你需要的是與\0
是你們等接收的字符數組內的替換#
S,並保存「休息」的位置串。這裏有一個例子:
Index: 0 1 2 3 4 5 6 7 8 9 10 11 12
--- --- --- --- --- --- --- --- --- --- --- --- ---
Char: '1' '0' '0' '#' '2' '0' '0' '#' '3' '0' '0' '#' \0
與
Index: 0 1 2 3 4 5 6 7 8 9 10 11 12
--- --- --- --- --- --- --- --- --- --- --- --- ---
Char: '1' '0' '0' \0 '2' '0' '0' \0 '3' '0' '0' \0 \0
和存儲指針代替這&str[0]
,&str[4]
和&str[8]
爲指針,以你個人的命令。
char[] str = "100#200#300#";
char *p1 = str;
char *p2 = strchr(p1, '#');
// Replace the first '#'
*p2++ = '\0';
// Replace the second '#'
char *p3 = strchr(p2, '#');
*p3++ = '\0';
// Replace the third '#'
*strchr(p3, '#') = '\0';
printf("One='%s' Two='%s' Three='%s'\n", p1, p2, p3);
這只是一個演示:在生產代碼,你需要做任務之前檢查的strchr
的返回值。
使用'strtok'。搜索谷歌更多的。如果您需要可重入版本,請使用'strtok_r'。 –