C 将包含字和数字的缓冲区过滤为仅用于字的缓冲区和仅用于数字的缓冲区

C 将包含字和数字的缓冲区过滤为仅用于字的缓冲区和仅用于数字的缓冲区,c,C,我正在尝试编写一个C脚本,可以将逗号分隔的空格解释为零,然后移植到我正在编写的程序中。该程序将读取CSV文件,该文件在单词和数字之间使用逗号 我想将单词和数字分开,并将它们放在两个单独的缓冲区中,以便稍后使用scanf语句读取 到目前为止,我在编译和运行脚本时得到以下信息: Frank (0 Value) John (0 Value) sir (0 Value) 45 (45 Value) 21 (21 Value) -- (0 Valu

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

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

到目前为止,我在编译和运行脚本时得到以下信息:

Frank (0 Value) John (0 Value) sir (0 Value) 45 (45 Value) 21 (21 Value) -- (0 Value) 79 (79 Value) 弗兰克(0值) 约翰(0值) sir(0值) 45(45值) 21(21值) --(0值) 79(79值) 我只希望单词在左列,数字在右值列。不需要那样打印,但分为两个缓冲区

<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;
}

int main()
{
char buffer_line[]=“Frank,John,sir,45,21,79”;//读取,排序,读取,排序,仅使用2D数组
字符子缓冲区行[20]=“”;
int子索引=0;
int i=0;
int j=0;
而(j==0){
if(缓冲区行[i]!='、'&缓冲区行[i]!='\0'){
子缓存线[子索引]=缓存线[i];
子缓存线[子索引+1]='\0';
子索引++;
}
否则{
子缓存线[子索引]='\0';
int值=0;
如果(0!=子索引)
{
值=atoi(子缓存线);
}
printf(“\n%s”,子缓冲区行);//仅用于名称
printf(“%d值”,Value);//仅适用于数字
子指数=0;
}
如果(缓冲区线[i]='\0'){
j=1;
}
i++;
}
返回0;
}

只要想想当你得到“,”时需要做什么。如果需要,您可能需要添加else,而不是在else处停止。

我没有看到任何逻辑检查输入的数字或其他信息。这不是一个关键的函数吗?我正在写的程序是一个成绩计算器。它必须考虑学生的名字和成绩。等等,因为名字和姓氏总是输入文件中每一行的前两个输入,所以我可以创建一个小缓冲区来读取前两个内容(名称),然后创建一个更大的缓冲区来读取所有数字。哦。然而,我想知道如何在缓冲区中将单词和数字分开?你想要
{{Frank,45},{John,21},{sir,79}}
?嗯,说得好。我希望程序将“,”解释为一个符号,以便继续阅读下一个单词或数字。我在想点什么。