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

标签 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'};

最佳答案

您的代码存在几个问题。对于您的 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/

相关文章:

c - Linux内核编程: implicit declaration of function 'vmalloc'

c++ - 有没有人使用过 __COUNTER__ 预处理器宏?

python - 如何在 Python 中包装返回位掩码的函数

c - 当用户在控制台中按 Enter 时,会向程序发送什么?

代码在控制台上没有输出

c - 输入后 Char 指针(字符串)数组崩溃?

arrays - numpy 在另一个多维数组上使用多维索引数组

将视频转换为字节数组的java代码

javascript - 从javascript中的键和字符串值获取objectId

c++ - 从文本文件中更改一行中的字段,存储到数组中,然后重新写入文件