C取3个字符串输入,然后放入字符数组

时间:2017-04-19 20:56:56

标签: c arrays

您好我试图从用户那里获取3个字符串输入,而不是将这些值传递给数组指针。

然而,当我传递值时,我得到一个空引用。我已经研究过这个问题并找到了一些使用strcpy()的解决方案。但到目前为止,实施它们并没有成功。以下是我的代码。

任何建议都会很棒。感谢

char s1[50], s2[50], s3[50];

printf("Enter 3 strings ");
scanf("%s %s %s", s1, s2, s3);

//THESE ARE NULL
char *argBB[] = { &s1, &s2, &s3, '\0'};

1 个答案:

答案 0 :(得分:2)

您的代码存在一些问题。对于您的scanf电话,%s需要char *,但您正在传递char *[50]。您将变量argBB定义为char *[],但是您使用一个三个正确的变量和一个常量char来初始化它。以下是更正后代码的简化版本:

#include <stdio.h>

int main() {
    char str[20];

    printf("enter a string\n");
    scanf("%s", str);
    printf("your string is %s\n", str);
    char *arg[] = {str, ""};
    printf("your string is still %s\n", arg[0]);
}