将带有单词和数字的缓冲区过滤到仅用于单词的缓冲区中,并将缓冲区仅用于数字

时间:2014-07-08 20:41:15

标签: c

我尝试编写一个C脚本,可以将逗号分隔的空格解释为零,然后移植到我正在处理的程序中。该程序将读取CSV文件,该文件在单词和数字之间使用逗号。

我想将单词与数字分开,并将它们放在两个单独的缓冲区中,以便稍后使用scanf语句进行读取。

截至目前,我在编译和运行脚本时得到了这个:

Frank    (0 Value)

John     (0 Value)

sir      (0 Value)

45       (45 Value)

21       (21 Value)

-- (0 Value)

79       (79 Value)

我只想要左栏中的单词和右栏中的数字。没有必要打印,但分成两个缓冲区。

<stdio.h>

int main()
{
    char buffer_lines[] = "Frank,John,sir,45,21,,79"; //read, sort, read, sort, use only 2D array
    char sub_buffer_lines[20] = "";
    int subindex = 0;
    int i=0;
    int j = 0;
    while(j == 0) {

    if(buffer_lines[i] != ',' && buffer_lines[i] != '\0') {
        sub_buffer_lines[subindex] = buffer_lines[i];
        sub_buffer_lines[subindex + 1] = '\0';
        subindex++;
    }

    else{
        sub_buffer_lines[subindex] = '\0';
        int value = 0;
        if(0 != subindex)
        {
            value = atoi(sub_buffer_lines);
        }
        printf("\n%s", sub_buffer_lines);//only for names
        printf("     %d Value", value);//only for numbers
        subindex = 0;
        }

        if(buffer_lines[i]=='\0'){
            j = 1;
        }
        i++;
    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

想想当你得到&#39;时需要做什么。您可能必须添加其他内容,而不是仅仅停留在其他位置。