我在大学里有一个任务,要求我输入2行,然后替换它们。
如果你能告诉我我错在哪里,我会非常感激的。
附言:这个任务还要求我写的程序应该有两个函数,而不是一个函数。所以,直到我把代码分解成函数,它才能正常工作。
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int entstr1(char *, int long1);
int entstr2(char *, int long2);
int plustr(char*, char*, char*, int, int, int);
int i;
int longall, long1, long2;
int main(void) {
char str1[7], str2[7], rstr[14];;
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
entstr1(str1, long1);
entstr2(str2, long2);
printf("%s", str1);
printf("%s", str2);
longall = long1 + long2;
printf("\n%d", longall); //
plustr(str1, str2, rstr, longall, long1, long2);
printf("\n\nResult line: %s", rstr);
return 0;
}
int entstr1(char *str1, int long1) {
printf("Enter 1 line: ");
fgets(str1, sizeof str1, stdin);
fflush(stdin);
long1 = strlen(str1);
printf("\nLength of 1 line: %d\n", long1); //
return 1;
}
int entstr2(char* str2, int long2) {
printf("Enter 1 line: ");
fgets(str2, sizeof str2, stdin);
fflush(stdin);
long2 = strlen(str2);
printf("\nLength of 2 line: %d\n", long2); //
return 1;
}
int plustr(char* str1, char* str2, char* rstr, int longall, int long1, int long2) {
for (i = longall-1, long1; i > long2; i--, long1--) {
rstr[i] = str1[long1];
}
for (i = long2; i != 0; i--) {
rstr[i] = str2[i];
}
return 1;
}
字符串
我已经添加了一些测试命令,看看“longall”是有一个坏的值,所以它是!IDK为什么它变成0,但在entstr 1和entstr 2中的命令显示,long 1和long 2有正确的值,但然后,它变成0在两个变量时,它再次去主函数“:
1条答案
按热度按时间y4ekin9u1#
@Egor我想知道我的代码是否完全实现了你的想法。你能检查它是否正确吗?然后,如果需要的话,我会解释它。但就我所知,你是一个很好的编码器,每次看到这段代码都不需要任何解释。
这就是:
字符串
这是我的结果:
x1c 0d1x的数据
希望能对您有所帮助。