2017-04-19 65 views
-1

您好,我试图从用户接收3个字符串输入,而不是将这些值传递给数组指针。C取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

你说这些都是空的。这些是什么”? argBB? s1,s2,s3? –

+5

'scanf(“%s%s%s”,&s1,&s2,&s3);'=>'scanf(“%s%s%s”,s1,s2,s3);' – bruceg

+1

阅读scanf文档并检查 – Yunnosch

回答

2

你的代码有几个问题。对于您的scanf电话,%s预计char *,但您的传递char *[50]。您将变量argBB定义为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]); 
} 
相关问题