如何在C上将argv []输入分成两个不同的字符串?

时间:2014-09-08 06:03:22

标签: c string

我是编程新手,目前正在学习C.请你协助我解决以下问题?

这方面的一个例子是,如果用户输入" cbamike",我想将其分成两个字符串:cba和mike。

我试过下面的代码,但它不起作用:

#include <stdio.h>;

int main (int argc, string argv[])
{
    char* input[50] = argv[1];
    char* first[10];
    char* second[10];
    sprintf(first, "%c %c %c", input[0], input[1], input[2]);
    sprintf(second, "%c %c %c %c", input[3], input[4], input[5], inpput[6]);
    printf("%s\n", input);
    printf("%s\n", first);
    printf("%s\n", second);
}

2 个答案:

答案 0 :(得分:2)

c中没有string, 您可以使用strncpy获取前面的几个字符:Strings in c, how to get subString

int main (int argc, string argv[])
{
    char* input = argv[1];
    char first[4];
    char second[5];

    strncpy(first, input, 3);
    strncpy(second, input + 3, 4);

    first[3] = second[4] = '\0';
}

答案 1 :(得分:1)

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

int main (int argc, char* argv[])
{
    if(argc >= 2)
    {
        const int len = strlen(argv[1]) / 2;
        char str1[len + 2], str2[len + 2];
        snprintf(str1, len + 1, "%s", argv[1]);
        snprintf(str2, len + 2, "%s", argv[1] + len);
        printf("1: %s\n2: %s\n", str1, str2);
    }
    return 0; 
}