我试图将字符串转换为数组。但是,当我尝试打印值来测试它时,它不会打印任何东西。
命令
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("%s\n", m[0].m);
printf("%s\n", m[1].m);
return 0;
}
答案 0 :(得分:1)
您在循环中声明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]);
}