【问题标题】:How do I concatenate strings via command line arguments separated by a +?如何通过由 + 分隔的命令行参数连接字符串?
【发布时间】:2020-04-07 17:52:25
【问题描述】:

我想要做的是在命令行中写入参数,用 + 分隔并将参数连接成一个字符串 例如:

./concat Wow + this + is + cool
Wow this is cool

我之前曾针对此类主题查找过一个问题,但这涉及仅连接每个参数的第一个字符,而不是整个参数。而且它没有忽略分隔符

这就是我所拥有的

void concat(char **argv, int argc, char *string)
{   
    size_t i = 0;

    for(int j=1; j<argc; j++)
    {
        string[i++] = *argv[j];
        if(j+1 != argc)
        {
            string[i++] = ',';
            string[i++] = ' ';
        }
    }
    string[i] = '\0';

}

这就是我在 main 中调用这个函数的方法

int main(int argc, char *argv[])
{
    int allnum=0;
    char string[1000];


    concat(argv, argc, string);
    printf("%s\n", string);
}

【问题讨论】:

  • 为什么不能只打印备用参数?

标签: c command-line-arguments string-concatenation


【解决方案1】:

string.h 中使用strcpystrcat 连接字符串更简单。

例如:

#include <stdlib.h>
#include <stdio.h>  
#include <string.h>

int main(int argc, char const *argv[])
{
    char * s = malloc (2 * argc *sizeof (char));

    if (argc < 2)
        exit(-1);

    for(int i = 1; i < argc; i += 2) {
        strcat(s, argv[i]);
        strcat(s, " ");
    }

    printf("%s\n", s);
    return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2012-07-16
    相关资源
    最近更新 更多