C语言永远不会过时
其实学编程关键是学习其思想,如果你精通了一门,再去学其他的时候也很容易上手。C不会过时的,尤其是在unix、linux操作平台上,学好C是必须的。
C跟C++在很多方面也是兼容的,c是c++的基础。
再者c能从很大的程度上帮你了解计算机的发展史,数据结构等方面的知识,很多软件、甚至操作系统中的很大部分是用c来实现的。
还有一些电器芯片的程序,比如电冰箱内制冷系统……可以说用c可以解决一切可能遇到的问题,关键是你要能精通它。
所以放开手脚去大胆的学吧,c永远不会过时
很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门纠结,如果你还在苦恼怎么入门!小编有个建议,可以加小编弄的一个C语言/c++交流基地,大家可以进入交流基地:567625668里面新手入门资料,可以说从零到项目实战,都是可以免费获取的,还有程序员大牛为各位免费解答问题,热心肠的小伙伴也是蛮多的。不失为是一个交流的的好地方,小编在这里邀请大家加入我的大家庭。欢迎你的到来。一起交流学习!共同进步!小编等你!
假设我们现在正在开发一款文档管理类软件。其中一项功能就是一次性创建多个名称连续的文件夹,如Icon1、 Icon2等等。整个名称可以分作两部分,前半部分是常量字符串"Icon",后半部分是编号字符串。在使用循环语句生成名称时,编号是数字,如果能将编号转换为一个字符串,那么我们就可以用strcat函数将两部分组合起来,然后使用mkdir创建文件夹即可。因此,现阶段问题就变成了如何把数字转换为对应的字符。
原始社会
现在又到了查看ASCII码表的时候了,通过查表我们可以看到,字符'0',对应的ASCII码是48,也就是说数值48,转换为char类型就是字符'0',根据这个简单的对应关系,我们就可以生成名称了。
输出编号从0-9的名称,整体效果还不错。不过,我想你也看到局限性了,如果要生成编号大于10的名称,这个程序就像小孩数指头做算术一样,不够用了。
二阶文明
在这一文明阶段的,我们的思考认知能力有了巨大的提升,我们希望能根据指定的一个区间生成对应的名称,如Icon17到Icon35,同时还希望前导名称能够指定,就像是Name999-Name1234一样。同样,最关键的问题还是数值到字符串的转换,因为现在的数值范围更大了,需要的处理也就更多了。让我们尝试编写一个函数去解决这个问题。
文明:itoa
现在我们进化到了三阶文明,在这一阶段,我们不再需要自己编写复杂的数值转换字符串函数了。而是使用本阶文明提供的函数来完明,这个函数就是itoa,它由stdlib.h提供。
原型名:char*itoa( int value, char *string, int radix );
value是被转换的整数,string是转换后储存的字符数组,radix是转换进制数,如2,8,10,16进制。
极文明
想想看,如果我们仅仅是要输出符合要求的名称,那么使用 printf("Icon%d", 83); 之类的语句即可达到要求。在这一文明阶段,C语言运行时库进化出了格式化字符串函数sprintf。
不同于printf将信息输出到屏幕(确切的说是标准输出),sprintf将格式化后的字符串输出到对应的字符数组,一击达到目的,其相应的安全版本是sprintf_s。同printf一样,可以使用格式化控制符,可以帮助我们生成补齐的文件夹名称。在运行完这个程序后,转到对应的工程目录,你会发现Icon98 Icon99...静静的躺在那儿。
通过这节内容的学习,希望能帮助你更深刻的理解ASCII码表、更好的操作数组,熟悉C提供的字符串函数。对于C语言字符串函数,建议你更多的使用其安全版本。最后要说明的是,做为练习,你可以写一个数字转换为字符串的函数;做为开发,你可以先去查找语言提供的库是否包含有你需要的功能,有,就用它!
网友评论