0

我应该创建两个称为 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; 
    }
4

2 回答 2

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;
}
于 2013-07-20T17:25:03.787 回答
1

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

继续,声明

char input1[1000][1000];

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

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

然后你不能使用+运算符来连接字符串。

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

于 2013-07-20T17:30:33.230 回答