C如何将命令传递的字符串变成数组



我正在尝试将字符串变成数组。但是,当我尝试打印值以测试值时,它不会打印任何东西。

命令

a.c btc ioT neo eth xrp

预期输出

btc.csv
iot.csv

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
typedef struct
{
    char m[9];
}moeda;
int main(int argc, char *argv[]){
    FILE *csv;
    int n = argc-1;
    moeda *m;
    m = (moeda*)malloc(n*sizeof(moeda));

    for(int z=1; z<=n; z++)
        {
            int i = 0;
            sprintf(m[i].m, "%s.csv", argv[z]);
            i++;
        }
    printf("%sn", m[0].m);
    printf("%sn", m[1].m);
    return 0;
}

您声明 i 内部循环,这意味着每次迭代设置为0。尝试

int i = 0;
for(int z=1; z<=n; z++)
    {
        sprintf(m[i].m, "%s.csv", argv[z]);
        i++;
    }

或只是

for(int z=1; z<=n; z++)
    {
        sprintf(m[z - 1].m, "%s.csv", argv[z]);
    }

相关内容

  • 没有找到相关文章

最新更新