【问题标题】:use get function to read from 2 arrays of char and store in variable input1 and input2. then join both variables and display the result in c.使用 get 函数从 2 个 char 数组中读取并存储在变量 input1 和 input2 中。然后连接两个变量并在 c 中显示结果。
【发布时间】:2013-07-20 17:21:45
【问题描述】:

我应该创建两个称为 input1 和 input2 的 char 数组,每个数组可以容纳 1000 个字符,一个称为 input 的 char 数组可以容纳 2000 个字符。使用gets 函数从用户那里读取两个不同的句子并将其存储在变量input1 和input2 中。连接 input1 和 input2 并将结果放入输入变量中。

这是我的代码

    main() {
     char input;
     get(input1);
     get(input2);
     input = input1 + input2;

    }

    char a(string result){ 
     char input1[1000][1000];
     printf("please enter the something\n"); 
     scanf("%s", input1); 
    return input1; 
    }

    char b(string result){ 
     char input2[1000][1000];
     printf("please enter the something\n"); 
     scanf("%s", input2); 
     return input2; 
    }

【问题讨论】:

  • 您的代码以及您对语言和问题的理解存在很多问题。但是,除此之外-您遇到了什么错误?因为就目前而言,您的问题本身并不是一个问题 - 而是一个公开邀请某人为您做这件事的邀请。
  • @jrd1 请不要再谴责我了,我知道我是 C 编程的初学者。我试图将我所知道的关于 c 的东西拼凑到代码中。是否有一个网站可以让我以更好的方式学习 c?最后,我不是要求公开邀请某人为我编写代码,请做对,我在这里寻求帮助,以便我理解并能够在将来做到这一点。我知道我的代码有问题,但我不知道我哪里出错了。
  • 我没有谴责你。我们都在这里互相帮助,兄弟/姐妹。我只是在陈述和联系摆在我面前的事实。 在这方面,您只是提出了一个问题,一个尝试的解决方案,但本身没有问题。 其次,您发布的解决方案与该语言的使用不一致,因为它与理解该问题有关要你地址。这并没有错 - 我们在某些时候都是新手。
  • 但是,由于您的解决方案存在缺陷,并且最重要的是没有与您的代码问题相关的明显问题,只需 不问问题 - 你只是在问一个答案 - 因此我的陈述。您发布的回复应该在问题中,IMO。如果是这样,我的回复将指向您未包含的错误。未来需要注意的事项。
  • 您可能会发现comp.lang.c FAQ 很有用,尽管它主要用于在您已经学习了很多语言之后回答问题。

标签: c


【解决方案1】:
#include <stdio.h>
#include <string.h>

int main(){
    char input1[1000] = {0};
    char input2[1000] = {0}; 
    printf("please enter the something\n"); 
    scanf("%999[^\n]%*c", input1); 
    printf("please enter the something\n"); 
    scanf("%999[^\n]%*c", input2); 
    char input[2000]; 
    sprintf(input, "%s %s", input1, input2); 
    printf("%s\n", input);
    return 0;
}

【讨论】:

  • 对不起 %999[^\n]%*c 是什么意思?
  • @PEARR 999 表示scanf 最多可以读取 999 个字符。 [^\n] 意味着它应该读取除换行符以外的任何内容。检查例如this reference.
  • @PEARR Pileborg 先生已经告诉你了。 999 是要读取的字符数的最大宽度。你为 EOS('\0') 画了一个字符。 [character set] 指定要读取的字符类型,this([^\n]) 表示您读取的不是换行符。 %s 是使用这样的方法,因为它分隔了空格(白色)字符。 %* 表示你忽略了其中的元素之一。 %*c 假定您忽略输入后的新行。
【解决方案2】:

首先,在 C 中没有称为 string 的类型。

继续,声明

char input1[1000][1000];

您将input1 声明为一个数组数组,或一个由 1000 个字符串组成的数组,其中每个字符串的长度为 999 个字符。

您还试图从仅返回单个字符的函数中返回此字符串数组。即使您将函数更改为只有一个字符串,并返回一个指向该字符串的指针,您仍然会遇到问题(您不能返回指向局部变量的指针)。

那么你不能使用+ 运算符来连接字符串。

总而言之,你需要从一个好的教程重新开始,并首先更好地掌握语言。

【讨论】:

  • 你能给我推荐一些好的网站吗?很抱歉我的语言很弱,但我愿意学习。
  • 顺便说一句,感谢您列出我一步一步犯的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多