您好,我正在尝试从用户处获取 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'};
最佳答案
您的代码存在几个问题。对于您的 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]);
}
关于C 获取 3 个字符串输入,然后放入字符数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43505907/