所以我有以下线如何从这一行获取数组?
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