c语⾔定义⼀个动态的字符串数组,【分享】C语⾔动态长度字
符串
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
很多朋友都⽤惯了⾼级语⾔的字符串变量,就是定义⼀个字符串变量,直接可以赋值,但在C语⾔⾥没有字符串变量这样的概念,只有字符数组,因此,只能定义⼀个固定数组,或⽤malloc动态分配⼀个固定的空间,但始终都受固定的限制,很多⼈都在思索,到底可以实现像String变量⼀样动态输⼊字符串吗?昨晚给⼀个朋友回答⽤:malloc( 常量 )还是觉得不够爽,思索了⼀阵,写出了这个真正实现⽆长度限制字符串输⼊函数,特和各位分享!
函数原型:getStr()
返回值:字符数组指针(输⼊的字符数组⾸地址)
具体⽤法如下:
#include "stdio.h"
#include "conio.h"
char *getStr()
{
char ch='\0';
char *str="";
long i=0;
int keyflushSize = 10; /*缓冲区⼤⼩*/
while((ch=getche())!='\r')
{
if( !strlen(str)%keyflushSize )
{
str = strcpy((char*)malloc(strlen(str)+keyflushSize),str);c语言如何创建字符串数组
}
if( ch!='\b' )
{
str[i]=ch;
str[++i]='\0';
}
else if( i>0 )
{
str[--i]='\0';
putch(' ');
putch('\b');
}
rewind(stdin); /*清空键盘缓冲区⾥的⽆⽤字符*/ }
return str;
}
main()
{
char *str;
str = getStr();
puts("\n\n\n Auto length String:");
puts(str);
getch();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论