所以我有以下線如何從這一行獲取數組?
BOOK_NAME_VALUE STRING Programming
我需要製造陣列包含此
a[0] = "BOOK_NAME";
a[1] = "VALUE";
a[2] = "STRING";
a[3] = "Programming";
陣列的第二值是該線的第一部分的最後部分; 行分隔符是空格'' 第一部分分隔符是'_'
所以有什麼想法?
UPDATE
我這樣做是爲第二分離過程,,需要更短的方式?
#include<string.h>
char **str_tok(char *str,char* d){
char *out[2];
char *s;
char *c;
int toks = noToks(str,d);
int i = 0;
s = strtok(str,d);
i++;
while(i != toks){
strcat(s, d);
c = strtok(NULL,d);
i++;
strcat(s,c);
}
strcpy(out[0],s);
c = strtok(NULL,d);
strcpy(out[1], c);
return out;
}
int noToks(char *str,char *d){
int c = 0;
while(*str)
if(*str == *d){
c++;
str++;
}
return c;
}
您可能希望將函數'no +++''中的'str ++'移到'if'之外和'while'之內。 – pmg 2010-11-12 09:07:32