[英]how to get a sub string from a string separated by commas in C
我想以编程语言C从数组中获取子数组
例如,如果我有一个char数组:
c[]= "Peter,peter911@hotmail.com,213342,IGE
d[]= "JohnSilva,johnsilva@hotmail.com,213342,ETI
问题是,我想要一个通用代码,当给定一个索引,一个数组和一个用于分隔索引的字符时,它将把下面的索引(从逗号到另一个逗号)放入一个数组。索引从0开始
示例:d [],索引= 1,分隔符:“,”
结果= 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++;
}
}
}
#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;
}
您可以使用strtok函数标记给定的字符串。
有关更多信息,请访问给定的链接。 的strtok()
可以使用Strtok函数。 但是,如果您不熟悉该功能,则简单的逐字符读取字符串的char可能会有所帮助。 检查此: http : //wethecomputerguys.com/2014/12/10/break-string-using-index-and-separator/ ..希望它能对您有所帮助。
阅读有关字符串解析的信息,然后编写一个字符串解析函数以返回第n个逗号和下一个逗号之间的所有内容,然后使用char *foo[]
形式的数组。
字符串解析:获取逗号数量,选择所需的一个,在两者之间获取字符串,生成数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.