博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言动态输入字符数组的长度,【分享】C语言动态长度字符串
阅读量:5106 次
发布时间:2019-06-13

本文共 774 字,大约阅读时间需要 2 分钟。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

很多朋友都用惯了高级语言的字符串变量,就是定义一个字符串变量,直接可以赋值,但在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();

}

转载地址:http://jeudv.baihongyu.com/

你可能感兴趣的文章
类库与框架,强类型与弱类型的闲聊
查看>>
webView添加头视图
查看>>
php match_model的简单使用
查看>>
在NT中直接访问物理内存
查看>>
Intel HEX 文件格式
查看>>
SIP服务器性能测试工具SIPp使用指导(转)
查看>>
php_扑克类
查看>>
回调没用,加上iframe提交表单
查看>>
(安卓)一般安卓开始界面 Loding 跳转 实例 ---亲测!
查看>>
Mysql 索引优化 - 1
查看>>
LeetCode(3) || Median of Two Sorted Arrays
查看>>
大话文本检测经典模型:EAST
查看>>
待整理
查看>>
一次动态sql查询订单数据的设计
查看>>
C# 类(10) 抽象类.
查看>>
Nginx+Keepalived 实现双击热备及负载均衡
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
jvm参数
查看>>
我对前端MVC的理解
查看>>
Silverlight实用窍门系列:19.Silverlight调用webservice上传多个文件【附带源码实例】...
查看>>