该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
很多朋友都用惯了高级语言的字符串变量,就是定义一个字符串变量,直接可以赋值,但在C语言里没有字符串变量这样的概念,只有字符数组,因此,只能定义一个固定数组,或用malloc动态分配一个固定的空间,但始终都受固定的限制,很多人都在思索,到底可以实现像String变量一样动态输入字符串吗?昨晚给一个朋友回答用:malloc( 常量 )还是觉得不够爽,思索了一阵,写出了这个真正实现无长度限制字符串输入函数,特和各位分享!
函数原型:getStr()
返回值:字符数组指针(输入的字符数组首地址)
具体用法如下:
#include "stdio.h"
#include "conio.h"
char *getStr()
{
char ch='';
char *str="";
long i=0;
int keyflushSize = 10; /*缓冲区大小*/
while((ch=getche())!='r')
{
if( !strlen(str)%keyflushSize )
{
str = strcpy((char*)malloc(strlen(str)+keyflushSize),str);
}
if( ch!='b' )
{
str[i]=ch;
str[++i]='';
}
else if( i>0 )
{
str[--i]='';
putch(' ');
putch('b');
}
rewind(stdin); /*清空键盘缓冲区里的无用字符*/
}
return str;
}
main()
{
char *str;
str = getStr();
puts("nnn Auto length String:");
puts(str);
getch();
}
最后
以上就是美丽花卷最近收集整理的关于c语言定义一个动态的字符串数组的长度,【分享】C语言动态长度字符串的全部内容,更多相关c语言定义一个动态内容请搜索靠谱客的其他文章。
发表评论 取消回复