C语言高手进

2025-12-16 18:42:53
推荐回答(5个)
回答1:

因为不明白你这段程序要做什么东西,大概看下,首先
语法错了很多,重点说下把,首先调用的时候,return只能返回一个数值,然不能返回一个数组,然后在MAIN()中C是不允许出现C()=A()这种东西的,如果你要输入的话必须用循环一个个输入。

回答2:

#include
#include

char *char_array()
{
char *t, ch;
int j;
char *ret = (char *) malloc(sizeof(char) * 1000);

for (t = ret, j = 0; j < 999; j++, t++)
{
ch = getch();

if (ch == 0x0d) break; /* 回车符时返回 */

*t = ch;
}

*t = '\0';

return ret;
}

int main()
{
char *c;
int i, cd;

c = char_array();

cd = strlen(c);

for (i = 0; i < cd; i++)
{
printf("%c", c[i]);
}

/* 其实可以直接 printf("%s", c); */
return 0;
}

回答3:

你可以把数组直接当作全局变量来定义
或者正规的作法是返回指向数组首地址的指针变量

回答4:

要不就定义一个全局变量,要不就都写到主函数中去了,你这个
函数本来功能就没有多少,就只管个输入,没必要非要写个函数.

回答5:

请先把程序当中的语法错误改了以后再传上来