C 如何将命令传递的字符串转换为数组

标签 c arrays string command malloc

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

命令

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

最佳答案

您在循环内声明 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]);
    }

关于C 如何将命令传递的字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49477617/

相关文章:

r - 未识别的空白

android - 与区域设置无关的 double 和字符串转换

c++ - 是否可以将输入用作对字符串的调用?

c - 在我自己的元层上加载我自己的设备驱动程序作为 Yocto 中的内置

C:地址运算符 (&) 产生一个指针(地址 + 类型)还是只是一个地址?

c - 给定一个单位数,正整数数组,转换为整数,乘以 2,返回一个新产品数组,数组中的每个数字

c - 从 C 文本文件中读取逗号分隔的数字(坐标)

Javascript - 处理大数组时的内存问题

javascript - 循环数组与循环对象的速度

c++ - c++中使用迭代器修改数组元素