Как объединить строки с помощью аргументов командной строки, разделенных +? - PullRequest
0 голосов
/ 07 апреля 2020

Что я хочу сделать, это написать аргументы в командной строке, разделенные +, и объединить аргументы в одну строку, например:

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

Я искал вопрос для такого рода топи c раньше, но это включало объединение только первого символа каждого аргумента, а не всех аргументов. И он не игнорировал разделитель

Это то, что у меня есть

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

1 Ответ

1 голос
/ 07 апреля 2020

Использование strcpy или strcat в string.h упрощает объединение строк.

Например:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...