我想从编程语言C
中获取数组中的子数组例如,如果我有一个char数组:
c[]= "Peter,peter911@hotmail.com,213342,IGE
d[]= "JohnSilva,johnsilva@hotmail.com,213342,ETI
问题是,我想要一个通用代码,当给定索引,数组和分隔索引的char时,它会将以下索引从逗号到另一个逗号放入array.Index从0开始/ p>
示例:d [],index = 1,separator:','
结果= johnsilva@hotmail.com
main(){
char delimitador;
char linha[100];
int index;
printf("index\n");
scanf("%d",index);
printf("char delimitador\n");
scanf("%c",caractere);
printf("linha"\n");
scanf("%c",linha);
char vector[50];
int i=0;
int contador;
while(i!=index){
contador++;
if(c[contador]==delimitador){
strncpy(vector,linha,contador-1);
i++;
}
}
}
答案 0 :(得分:1)
#include <stdio.h>
char *get_field(char *out_buff, const char *csv, int index, char separator){
int i;
char *p = out_buff;
for(i=0; i < index && *csv; ++csv){
if(*csv == separator)
++i;//count separator
}
if(i == index){
while( *csv && *csv != separator )
*p++ = *csv++;//cut out
}
*p = '\0';
return out_buff;
}
int main(void){
char d[]= "JohnSilva,johnsilva@hotmail.com,213342,ETI";
char vector[50];
get_field(vector, d, 1, ',');
puts(vector);
return 0;
}
答案 1 :(得分:0)
您可以使用 strtok 函数来标记给定字符串。
了解更多信息,请访问指定链接。 strtok()
答案 2 :(得分:0)
可以使用Strtok功能。但是如果你不熟悉这个函数,那么char读取字符串的简单char会有所帮助。检查一下:http://wethecomputerguys.com/2014/12/10/break-string-using-index-and-separator/ ..希望它可以帮助你..
答案 3 :(得分:0)
阅读字符串解析,然后编写一个字符串解析函数,返回第n个逗号和下一个逗号之间的所有内容,然后使用char *foo[]
形式的数组。
字符串解析:获取逗号数,选择所需的一个,在两者之间获取字符串,make array。