C语言中输出任意长度的字符串

#include<stdio.h>
void main()
{
void echo(char (*str)[]);
char (*str)[];
scanf("%s",str);
echo(str);
}
void echo(char (*str)[])
{
int i;
for(i=0;(*str)[i]!='\0';i++)printf("%c",(*str)[i]);
printf("\n");
} 我的目的是实现终端输入任意长度字符串 ,而复制输出但是使用字符数组又必须定义长度,为此不知如何解决。一定要定义长度么 ?其实也就是想实现类似echo的DOS命令

楼主,对于c语言来说是解决不了的。因为,c语言在声明字符数组的时候系统要对其分配空间。如果你不声明数组大小,当然会报错。而在更高级一些的语言,如c++和c#都有动态数组此类的功能,可以完美的帮助你解决问题。这也是为什么目录很少用c语言编写程序的原因。
温馨提示:答案为网友推荐,仅供参考
相似回答