這裏我有一個字符串表示字符數組。這個數組也包含分隔符。現在我只想拿出沒有這個分隔符的字符串。想要將字符串分隔爲使用特定字符的令牌
我正在使用strtok
函數。
我想用此分隔符分隔我所有的單詞。
但是,我在這段代碼中遇到了一些問題。
請讓我知道如果我做錯了什麼或者告訴我以不同的方式實現這件事情簡單易行,還要考慮記憶風險。
這裏這條線pch = strtok (str,&sep);
什麼也沒有。問題只在這裏。
代碼
/* strtok example */
#include <stdio.h>
#include <string.h>
#define SEPRATOR 0x03
int main()
{
char str[1024];
int count = 0;
char sep;
memset(str,0,1024);
sep = SEPRATOR;
memcpy(str,"1",strlen("1"));
count = count + strlen("1");
str[count++] = sep;
memcpy(str+count,"0",strlen("0"));
count = count + strlen("0");
str[count++] = sep;
memcpy(str+count,"2",strlen("2"));
count = count + strlen("2");
str[count++] = sep;
memcpy(str+count,"abc_1.0.xyz",strlen("abc_1.0.xyz"));
count = count + strlen("abc_1.0.xyz");
str[count++] = sep;
memcpy(str+count,"3",strlen("3"));
count = count + strlen("3");
str[count++] = sep;
memcpy(str+count,"23455.456",strlen("23455.456"));
count = count + strlen("23455.456");
printf("Input String = %s\n",str);
char * pch;
int pchcount = 0;
pch = strtok (str,&sep);
while (pch != NULL)
{
pchcount++;
printf ("%d === %s\n",pchcount,pch);
pch = strtok (NULL,&sep);
}
return 0;
}
@jrok感謝。它的完成 – 2012-07-10 17:12:57
@chris您提出的問題是[標籤:C++]。這個問題被標記爲[tag:C]。但是,這個問題可能是[在c中標記字符串]的重複(http://stackoverflow.com/questions/266357/tokenizing-strings-in-c)。 – 2012-07-10 17:28:18
@EitanT,我的不好,當我去找常見問題時,它被標記爲C++。 – chris 2012-07-10 17:48:38