繁体   English   中英

如何从C中用逗号分隔的字符串中获取子字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM