代码改变世界

用C语言简单加密解密

2013-11-03 11:49 by kingshow, 4612 阅读, 0 推荐, 收藏, 编辑
摘要:使用char表示的字符型数据,在本质上与我们前面介绍的整型数据并无太大的区别,只是char类型占用的内存字节数更小,能够表示的数据范围更小而已。在使用上,char被专门用来表示C语言的字符集中的各种字符,不要把它当成一个整型数据类型来使用。对于字符类型,我们常常利用它来处理字符串中的单个字符或者是实现一些字符游戏。例如,我们可以对字符串中的单个字符进行运算,实现字符串的简单加密:#include #include // strlen()函数所在的头文件#include // isalpha()函数所在的头文件int main(){ // 定义一个明文字符串 char m... 阅读全文

学了C语言,如何利用cURL写一个程序验证某个网址的有效性?

2013-11-03 11:27 by kingshow, 1715 阅读, 0 推荐, 收藏, 编辑
摘要:在《C程序设计伴侣》以及这几篇关于cURL的文章中,我们介绍了如何利用cURL写一个下载程序,从网络下载文件。可是当我们在用这个程序下载文件时,又遇到了新问题:如果这个网址是无效的,那么我们的下载会失败,这就意味着我们在进行下载之前,需要对这个文件的网址的有效性进行验证。另外一个需要对网址进行验证的场景是,在C++11 FAQ中文版中有很多链接,因为一些后期的维护,其中的有些链接可能会失效,这就要求我们对其中的链接的有效性进行检查验证,及时地发现失效链接并进行维护。 以上这些场景下,都要求我们对网址(URL)的有效性进行验证,那么这一工作如何进行呢? 难道将需要验证的网址一个个复制到浏览器中试 阅读全文

如何计算一个字符串表示的计算式的值?——C_递归算法实现

2013-11-01 17:14 by kingshow, 2210 阅读, 0 推荐, 收藏, 编辑
摘要:在《C程序设计伴侣》的8.7.3 向main()函数传递数据这一小节中,我们介绍了如何通过main()函数的参数,向程序传递两个数据并计算其和值的简单加法计算器add.exe。这个程序,好用是好用,就是太简单,还停留在幼儿园大班的水平,只能计算两位数的加法。我们现在基本都已经是大学生了,如果还是用这个简陋的加法计算器去向面试官展示我们的编程能力,肯定会遭到他们的笑话。在看完《C程序设计伴侣》后,我们的编程能力已经今非昔比了。自然,我们也可以利用从这本书中学到的知识(函数,字符串处理等),把这个计算器改进一下,让他成为一个可以计算更多数据更多算符的高级计算器。我们是怎么计算一个复杂计算式的?我们 阅读全文

学了C语言,如何写个程序计算出每个月的第一个星期一对应的日期

2013-11-01 15:15 by kingshow, 1758 阅读, 0 推荐, 收藏, 编辑
摘要:在前面,我们分别利用泰勒公式和C标准库中的mktime()函数推算了某个特定日期所对应的星期几,刚做完这些,就又遇到了一个与日期相关的新任务:老板把每个月例会的时间定在了每个月的第一个星期一,他让我把具体日期整理出来,发给每一个成员,提醒大家准时参加。简单地讲,也就是把每个月的第一个星期一对应的日期提取出来。如果时间范围比较短(比如一年),自己翻翻日历勉强也能解决,如果要是时间范围比较长(比如十年),再去一个个翻日历,就麻烦了。怎么办?还记得我们在学了C语言,如何统计一篇英文文章中的单词数?中所认识和体会到的:程序,就是用来帮助人们完成这些看起来枯燥繁琐但是带有一定规律性的事情的。面对这个麻烦 阅读全文

用C语言写个程序推算出是星期几?(用泰勒公式实现)

2013-11-01 12:10 by kingshow, 4639 阅读, 0 推荐, 收藏, 编辑
摘要:在日常生活中,我们常常遇到要知道某一天是星期几的问题。有时候,我们还想知道历史上某一天是星期几。比如:“你出生的那一天是星期几啊?”“明年五一是不是星期天?我去找你玩?”通常,解决这个问题的最简单办法就是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。老师告诉我们,学习C语言,就是为了用它来帮助我们解决实际问题的,那么,既然我们通过《C程序设计伴侣》学了C语言,如何用C语言写个程序来推算出自己出生的那天是星期几呢?答案当然是肯定的(要不然,我也不会在这里啰嗦)。要计算日期所对应的星期,有一个著名的泰勒公式:w = [ c/4 ] – 2c + y + [y/4] + 阅读全文

学了C语言,如何利用CURL写一个下载程序?—用nmake编译CURL并安装

2013-11-01 11:39 by kingshow, 1972 阅读, 0 推荐, 收藏, 编辑
摘要:在这一系列的前一篇文章学了C语言,如何为下载狂人写一个磁盘剩余容量监控程序?中,我们为下载狂人写了一个程序来监视磁盘的剩余容量,防止下载的东西撑爆了硬盘。可是,这两天,他又抱怨他的下载程序不好用,让我们帮他写一个下载程序。虽然我们学了C语言,虽说学了C语言,走遍天下都不怕,但是要想用C语言写一个全新的下载程序,对我们来说,就好比另外一个二万五千里长征。虽然技术上可行,但是在实际操作中却是行不通的。谁也不会傻到去用C语言写一个全新的下载程序。那么,到底怎么办呢?如果我们看了《C程序设计伴侣》的7.A 站在巨人的肩膀上——如何使用已有的函数库这个节,要想解决这个问题,那简直就是“洒洒水啦”。在这个 阅读全文

统计一篇英文文章中的单词数

2013-10-31 18:15 by kingshow, 7419 阅读, 0 推荐, 收藏, 编辑
摘要:写英语作文的时候,常常要求满足一定的字数,在以往,要么,我们一个一个地数,要么,我们估算一行的单词数,然后用行数进行估算。第一种方法太费时,如果要是写个长篇大论,那几乎是mission imposible,而第二种方法有不太准确。这就给我们留下了一个问题:如何又快又准确地统计一篇英文文章中的单词数?程序,就是用来帮助人们完成这些看起来枯燥繁琐但是带有一定规律性的事情的。要解决这个问题,最自然的想法是,读取文章的所有内容(用fopen()和fgets()),然后一个单词一个单词地统计,然而,我们在这里遇到了一个难题:程序看不懂英文,他如何知道什么是一个单词,什么不是一个单词呢?我们似乎在这里遇到 阅读全文

磁盘剩余容量监控程序

2013-10-31 17:05 by kingshow, 561 阅读, 0 推荐, 收藏, 编辑
摘要:同学们在读完一本C语言参考书,能够做到C语言简单入门之后,往往有这样一种感觉:我知道用if语句可以表示条件选择,用for语句可以表示循环,我还知道如何写一个函数,也知道如何使用指针访问数据或者函数,可是我就是不知道如何用C语言解决现实生活中的实际问题:如何为寝室的下载狂人写一个磁盘剩余容量监视程序来监视磁盘,防止剩余容量不足?如何为他写一个个性化的下载程序,使之可以用命令行的方式灵活地下载文件?如何。。。 当我们掌握了C语言的基础知识后,但是却不知道如何运用,在遇到一些实际问题时,却感觉无从下手。这就是我们在C语言学习上的短板。《C程序设计伴侣》将通过一系列生动有趣的,来自实际的例子,为大家补 阅读全文

C++实现另一个猜数字游戏

2013-10-31 12:12 by kingshow, 2082 阅读, 0 推荐, 收藏, 编辑
摘要:在 C语言实现一个简单的猜数字游戏 中,我们用C语言实现了一个简单的猜数字游戏,但是整个逻辑都在main()函数中,这种一个main函数从头到尾的方式很不好,今天我们用C++来将这个程序改写一下。 整个程序的大部分工作,实际上是由主持人这个角色完成的,包括确定最初的目标数字,判断猜测的数字大小,因此,我们可以将主持人抽象成Judge这个类,让这个类来负责这些工作,而主函数则负责与之交互,完成游戏过程。#include #include using namespace std; class Judge{public: Judge() { max = 100; ... 阅读全文

C语言实现一个简单的猜数字游戏

2013-10-31 11:32 by kingshow, 10556 阅读, 0 推荐, 收藏, 编辑
摘要:简单的猜数字游戏!/* 最经典的猜数字游戏的例子来展示条件结构在程序中的作用,今天看到另外一种猜数字的玩法,也挺有趣: 这个游戏由三个人一起玩, 一个人做主持人,心中默想一个1到100之间的数字,然后由其他两个人轮流猜,每次猜测之后,主持人就说出猜测的这个数比他心中 的数字是大还是小,然后另外一个人根据这个信息继续猜测,如此轮流,最后谁猜中就算谁输了。(算赢了也可以) 这是一个相互挖坑 让对方跳的过程,特别是最后几步,猜测范围越来越小,真是步步惊心,稍不留意,就踩到对方挖的坑里去了。 ======================================================= 阅读全文