【问题标题】:C How to turn strings passed by command into arrayC如何将命令传递的字符串转换为数组
【发布时间】:2018-03-25 15:39:14
【问题描述】:

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

命令

a.c BTC IOT NEO ETH XRP

预期输出

BTC.csv
物联网.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;
}

【问题讨论】:

  • 尝试在 for 循环外声明 i=0;
  • 谢谢@BahattinUngormus!!!!它解决了它!

标签: c arrays string command malloc


【解决方案1】:

你在循环中声明iinside,这意味着每次迭代它都会被设置为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]);
    }

【讨论】:

    猜你喜欢
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 2013-04-14
    • 2014-12-11
    • 1970-01-01
    • 2012-01-29
    • 2014-12-15
    相关资源
    最近更新 更多