社区
C语言
帖子详情
请教一段C代码
longaiting
2008-03-22 07:35:13
1. 从命令行读取任意长度的字符串,利用malloc和realloc为该字符串分配内存空间,将该字符串保存在内存中,并用printf输出
...全文
590
31
打赏
收藏
请教一段C代码
1.从命令行读取任意长度的字符串,利用malloc和realloc为该字符串分配内存空间,将该字符串保存在内存中,并用printf输出
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
31 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wjtliso
2008-03-24
打赏
举报
回复
请问一下,怎么用buffer来写?
longaiting
2008-03-23
打赏
举报
回复
谁想一下这个:编写宽字符版本的strlen函数,统计宽字符字符串的长度。
longaiting
2008-03-23
打赏
举报
回复
[Quote=引用 22 楼 eyf0917 的回复:]
基本思路是,刚进循环时,计数为0,所以表明没有初始化,所以就用malloc函数,将它初始化,一个循环后,nCount++所以以后,每次利用realloc函数增长,无论你输入多少个,只要不输入回车,你的字符可以一直输个没完没了^_^
[/Quote]
这个想法很不错,先谢啦
eyf0917
2008-03-23
打赏
举报
回复
基本思路是,刚进循环时,计数为0,所以表明没有初始化,所以就用malloc函数,将它初始化,一个循环后,nCount++所以以后,每次利用realloc函数增长,无论你输入多少个,只要不输入回车,你的字符可以一直输个没完没了^_^
eyf0917
2008-03-23
打赏
举报
回复
肯定要在循环内加个,nCount++;的语句啊,难道这个也要我写吗,哈哈哈
billy1985
2008-03-23
打赏
举报
回复
楼上的ncout这个变量在while循环中没有发生改变
eyf0917
2008-03-23
打赏
举报
回复
定义一个字符型指针,,初始化,然后输入字符,每增加一个字符,利用reallor函数,增加空间,
例如:char *array;
char temp;
int nCount=0;
do{
printf("Please input char:");
scanf("%c",&temp);
if(nCount==0)
array=(char *)malloc(sizeof(char)); /*初始化*/
else
array=(char *)realloc((nCount+1)*sizeof(char));/*空间增长*/
...........
...........
}while(tmep!='\n');
基本思路就是这样的,其它的根据你的目的,添加语句
独孤过儿
2008-03-23
打赏
举报
回复
不是不给你写,是你这个任意长度没人敢写!
如果普普通的的长度,只要malloc内存就行了...而且还有,任意长度的字符串,还得考虑输入时候缓冲区的大小,如果超过了缓冲区的大
小,就溢出了,肯定出错!
longaiting
2008-03-23
打赏
举报
回复
兄弟内存是很贵的东西.哪位高手写一段?
sheenl
2008-03-23
打赏
举报
回复
最方便的做法是, malloc个4M的空间, 然后读字符串到这段空间里去。 如果你们老师认为4M空间不能存下任意大小的字符串, 那你就反问他如果你输入4T字节的字符串,算不算任意大小的字符串, 怎么保存
longaiting
2008-03-23
打赏
举报
回复
嗯,14楼和我的想法一样.欢迎大家踊跃发言
「已注销」
2008-03-23
打赏
举报
回复
你实际用用试试
程序是拿来用的,写这些没实际意义的程序干吗,浪费时间
tianhuo_soft
2008-03-23
打赏
举报
回复
使用单向链表
xiaochen57
2008-03-23
打赏
举报
回复
高手啊!
lin_style
2008-03-23
打赏
举报
回复
基本思路是,刚进循环时,计数为0,所以表明没有初始化,所以就用malloc函数,将它初始化,一个循环后,nCount++所以以后,每次利用realloc函数增长,无论你输入多少个,只要不输入回车,你的字符可以一直输个没完没了^_^
//中看不中用的代码。。回去看看缓冲池的原来再回过头来看看。 。
第一题:不要想着你写的程序可以实现一个完美的可以容纳任何大小的东东。。那没什么意义,你可以参考STL里买内数组内存的分配。
先分配M大的内存,如果当前使用率超过80%,对他进行扩充。或者说构造的对象比较大,用链表即可。
宽字符,不是很了解,没碰到过。
C中的宽字符基于wchar_t数据型态,它在几个表头文件包括WCHAR.H中都有定义,像这样:
typedef unsigned short wchar_t ;
不就是两倍吗?
howardftj
2008-03-23
打赏
举报
回复
一看就知道是老师出的题,这种细节的东西就是教学目标了,费时费力舍本逐末。
yinpu19871217
2008-03-23
打赏
举报
回复
buffer有限
aomeng
2008-03-22
打赏
举报
回复
我说一下我的思路,一定个较大的buffer,比如char buffer[1024],用scanf单个字符得到标准,判断是否是结束字符,不是的话将输入字符放到buffer中,然后调用scanf取后面的输入字符,当buffer长度到了1024时,用malloc分开空间,将buffer内容放到分配新空间中,清空buffer,然后继续前面的操作,当在达到buffer长度时,用realloc改变前面空间的长度,放入新的输入字符串。
定义buffer,是为了减少分配空间函数调用次数,减少系统开销。
lxjlan
2008-03-22
打赏
举报
回复
lz 的话。。。打击了人的积极性。。。
longaiting
2008-03-22
打赏
举报
回复
写一两段代码出来 嘛,说一些废话没用
加载更多回复(11)
微信小程序系统教程[1/3阶段]
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。“微信小程序系统教程[阶段]全套课程”包含:1.微信小程序系统教程[阶段]_客服消息2.微信小程序系统教程[阶段]_微信支付3.微信小程序系统教程[阶段]_九宝电商系统学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以
请教
老师。购买课程后请联系老师,提供单号,给你源程序。九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。“微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。购课请咨询qq2326321088
请教
LUA高手
一段
代码
,希望帮忙谢谢!
以下是
一段
LUA的
代码
,
请教
高手“perm{"a", "b", "c"}”为什么能返回一个tablefunction permgen (a, n) if n == 0 then coroutine.yield(a) else for i=1,n do -- put i-th element as the last one a[n], a[i] = a[i], a[n] --...
C语言错误c2063,
请教
C语言中关于将二维数组复制到一个三维数组的问题
请教
C语言中关于将二维数组复制到一个三维数组的问题小白正在填写
一段
代码
,是有点类似与俄罗斯方块的
一段
游戏
代码
,
代码
如下要求在增加参数,变量和函数的情况下完成此
代码
,只能填写// write appropriate codes here.部分。在填到int possible(int m[MR][MC],int b[BR][BC],int pcl[][MR][MC],int pcn)函数部分时,不...
c语言程序结果不一样,虚心
请教
:为什么同样的
代码
输出结果不一样?
该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include # define N 50# define M 11void fun(int *a, int *b){int x;for(x=0;x<11;x++)b[x]=0;for(;*a;a++){if(*a<=9&&*a>=0)b[0]++;else if(*a<=19&&*a>...
38译码器数码管c语言
代码
,通过38译码器控制数码管显示数字
今天终于把38数码器控制原理及编程序搞得一点点了,之前因为是P0^1,2,3三个口控制数码管的位操作,一直搞不懂其原理,呵呵,看了下PDF文档,以及编程实例,总算明白一点点了,刚刚编成了一连串的数字,这证明我的猜想应该是对的。好高兴。昨天是想
请教
一个网友的,他叫我自己再认真研究下,嘿嘿。看来有些东西真的需要支持,这样才会成功才会深刻,特别是学习这东西。程序如下:#include sbit DECO...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章