为什么加了*编译出来就对了呢?帮忙解释一下
# include <stdio.h>#include <string.h>
int main() {
char str[2][20];
int strcm(char str1[30],char str2[30]);
char* strca(char str1[30],char str2[30]);//就是这里少了*这个以后 在运行的时候就出现一个框显示“----.exe出现问题”
int i;
for (i = 0; i < 2; i++)
gets(str[i]);
if (strcm(str[0], str[1]) > 0)
puts(strca(str[1], str[0]));
else
puts(strca(str[0], str[1]));
return 0;
}
int strcm(char str1[30], char str2[30]) {
int n, a, b, i;
a = strlen(str1);
b = strlen(str2);
if (a == b)
for (i = 0; i < a; i++) {
if (str1[i] == str2[i] && i == a - 1)
n = 0;
if (str1[i] > str2[i])
n = 1;
if (str1[i] < str2[i])
n = -1;
}
else
for (i = 0; i <= a; i++) {
if (str1[i] > str2[i])
n = 1;
if (str1[i] < str2[i])
n = -1;
}
return n;
}
char* strca(char str1[30], char str2[30])//这里也是 我是通过错误提示改正的 不懂 啊
{
int n, a, b, i;
a = strlen(str1);
b = strlen(str2);
for (i = a, n = 0; i < a + b + 1; i++, n++)
str1[i] = str2[n];
return str1;
}