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);
}
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();
}
總結
以上是生活随笔為你收集整理的c语言固定长度的字符串,【分享】C语言动态长度字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淦!推荐10款程序员专用高清壁纸!!
- 下一篇: 2015-数学(3)