所以我有以下行
BOOK_NAME_VALUE STRING Programming
我需要让一个数组包含这个
a[0] = "BOOK_NAME";
a[1] = "VALUE";
a[2] = "STRING";
a[3] = "Programming";
数组的第二个值是该行第一部分的最后一部分; 行分隔符是空格 ' ' 第一部分分隔符是“_”
有什么想法吗??
更新
我在第二次分离过程中这样做了,需要更短的方法?
#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;
}
最佳答案
看一下 strtok
函数,该函数用于根据一组指定的分隔符分割字符串。
阅读here找到该函数的文档和一些示例..基本上你调用
char *cur = strtok(your_string," ");
获取第一个字符串,然后您可以继续使用NULL
参数调用该函数来获取连续的字符串:
while (cur != NULL) {
// do whatever
cur = strtok(NULL," ");
}
关于c - 如何从这一行获取数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4161056/