1
我有如下使用strtok
一個小程序:çstrtok的不標記化而空的令牌值
#include <stdio.h>
#include <string.h>
int main()
{
char str[] ="1,2,,3,4,5";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,",");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, ",");
}
return 0;
}
我的輸出如來:
Splitting string "1,2,,3,4,5" into tokens:
1
2
3
4
5
但我需要得到一個空值作爲一個空字符串,當我遇到連續的分隔符時,例如,,
。 也就是說我需要的輸出是因爲: 分割字符串 「1,2,3,4,5」 爲標記:
1
2
3
4
5
任何補救措施?
''1,2,,3,4,5「'--->」「1,2,,3,4,5」'沒有簡單的方法來做到這一點。您必須檢查strtok返回的地址,並檢查差異== 1. – LPs
使用'strpbrk'按@ FredLarson的鏈接建議 –
這是正確的行爲。只要檢查'strlen(pch)'並忽略它,如果它是零。 –