CodeSky 代码之空

随手记录自己的学习过程

归档时间:2014-02

C 不用与或改一个循环语句 小解枚举型变量

2014-02-23 15:38分类: C评论: 1

题目:

1for (i = 0;i < lim - 1 && (c = getchar()) != '\n' && c != EOF; ++i)
2    s[i] = c;
3

不用&&和||的条件下编写一个与上面的for循环语句等价的循环语句

题目看着不难,我当时就想着用whileif的结合就OK了吧,结果思路方向错了,我想先ifwhile可是这样就跳过了两个条件的重复利用,先whileif才是正解,正好答案中还有枚举型的出现,就码来研究了一下。

阅读更多 →

C 将字符串s转换为相应的整数型

2014-02-23 15:10分类: C评论: 0

将字符串s(实际上是数字)转换为相应的整数型。

来看一下这个:

1int atoi(char s[])
2{
3    int i, n;
4
5    n = 0;
6    for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)
7        n = 10 * n + (s[i] - '0');
8
9    return n;
10}
11

刚开始的时候没看懂为什么n = 10 * n + (s[i] - '0');,然后就试着运行了一下,发现确实,如果输入56的话,输出就是56(但肯定改变了类型)

虽然还没有学到数组那个章节,可是根据前面所说的,字符串其实是字符分开储存成数组(最后有\0[当然可以忽略NULL]),他字符一格格储存的,换句话说s[0] = 5; s[1] = 6;差不多类似于这种,然后就好理解了。

关于'0'可见:http://codesky.me/archives/c-variable-const-type.wind

阅读更多 →

C 编写函数统计字符串长度

2014-02-23 12:03分类: C评论: 4

这个函数貌似挺能让人接受的OTZ……功能与<string.h>里的strlen()功能一模一样

1int strlen(char s[])
2{
3    int i;
4
5    i = 0;
6    while (s[i] != '\0')
7        ++i;
8    return i;
9}
10

这种类型的代码我们已经屡见不鲜了吧

阅读更多 →

C 转义字符序列

2014-02-23 11:29分类: C评论: 0

\a 响铃符 \b 回退符 \f 换页符 \n 换行符 \r 回车符 \t 横向制表符 \v 纵向制表符 \\ 反斜杠 \? 问号 \' 单引号 \" 双引号 \ooo 八进制数 \xhh 十六进制数 \0 空字符(NULL)

其中\ooo代表1-3个八进制数,\xhh代表一个或多个十六进制数。 举例可见http://codesky.me/archives/c-variable-const-type.wind

NULL表示值为0的字符,其数字值是0 字符串内部使用一个空字符\0作为结尾,所以储存字符串的物理单元比双引号内的字符数多一个。

可见:http://codesky.me/archives/c-variable-const-type.wind

阅读更多 →

C 编写程序确定各种类型变量取值范围

2014-02-23 11:10分类: C评论: 0

题目: 编写一个程序以确定分别由signed和unsigned限定的char、short、int与long类型变量的取值范围。

书中说用两种,暂时只会一种,另一种说是用位运算符,难度系数就略高了……

我的输出是:

signed char min:-128
signed char max:127
int max:2147483647
int min:-2147483648
long max:2147483647l
long min:-2147483648l
short max:32767
short min:-32768
unsigned char max:255
unsigned int max:4294967295
unsigned long max:4294967295l
unsigned short max:65535

具体是要取决于你的编译器的,这里以code::blocks为例而已。关于这点,见C 变量与常量 数据类型

阅读更多 →

C 格式说明

2014-02-23 10:50分类: C评论: 0

%d 按照十进制整数型打印 6d 按照十进制整数型打印,至少6个字符宽 %f 按照浮点数打印 %.2f 按照浮点数打印,小数点后有两位小数

什么是字符宽请见:http://codesky.me/archives/c-str-width.wind

printf()还支持以下格式: %o 表示八进制数 %x 表示十六进制数 %s 表示字符串 %% 表示百分比

复习一下PHP中:

八进制符号数值前加0;十六进制加0x。 表达式计算结果都以十进制输出。

From:http://codesky.me/archives/php-scalar-type.wind

阅读更多 →

C 变量与常量 数据类型

2014-02-23 10:29分类: C评论: 0

终于正式开始学C做笔记了 本来想一长篇说点的,想想还是边看边记,记得少点搜索起来方便。

变量与常量的命名规范与PHP类似,常量全部用大写字母,而变量使用小写字母,C也同样区分大小写,命名时不要以下划线_开头。局部变量一般使用较短的变量名,外部变量一般使用较长的名字。

保留字符的问题就不多说了,差不多就是那回事。

阅读更多 →

C 删除C语言程序中的所有注释

2014-02-22 23:20分类: C评论: 0

题目: 编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中,注释不允许嵌套。

还是看答案吧,毕竟是导言,我并不指望自己能写出来,代码还是勉强能看懂的,就是处理引号部分还不大明白(如为什么echo_quote里搜索\\),留待以后回头再看看这个问题。

另外这个程序一个问题就是分段落输出,这样比较无力……不晓得是不是我码错了什么……换言之,确实它值得改进的地方还有很多,注释也自己乱加了点OTZ。

阅读更多 →

C 规范注释方法

2014-02-22 22:54分类: C评论: 0

标准C中的注释方法只有/* */一种,虽然code::blocks或者vs都吃// rcomment,不过还是不规范……题目中发现的问题。

阅读更多 →
共 66 篇文章,7 页
...