标签:
第一次读这本书的时候是大三初,现在打算重读一遍!。
第一章 导言
1. 学习一门新程序设计语言的唯一途径就是用它来写程序。
2. 每个程序都从main函数的起点开始执行。
3. 在C语言中,所有变量必须先声明后使用。
4. C语言中的基本数据类型的大小取决于具体机器。
5. 在允许使用某种类型变量值的任何场合,都可以使用该类型的更复杂的表达式。
6. 标准库的输入/输出模型是按照字符流的方式处理,每行字符都有0个或者多个字符组成,末尾是换行符。
7. 函数为计算的封装提供了一种简便的方法,函数都是通过传值调用。
#include <stdio.h> // 文件复制 int main() { int c; while ((c = getchar()) != EOF) { putchar(c); } return 0; }
/* * 编写一个将输入复制到输出的程序, * 并将其中连续的多个空格用一个空格代替. */ #include <stdio.h> int main() { int c; int flag = 0; // 当前字符是否为空格 while ((c = getchar()) != EOF) { if ((c == ‘ ‘ && flag == 0) || (c != ‘ ‘)) { putchar(c); flag = !flag; } } return 0; }
#include <stdio.h> #define IN 1 // 单词内 #define OUT 0 // 单词外 // 统计行数, 单词数和字符数 int main() { int c; int numLines = 0; // 行数 int numWords = 0; // 单词数 int numCharacters = 0; // 字符数 int state = OUT; while ((c = getchar()) != EOF) { ++numCharacters; if (c == ‘\n‘) { ++numLines; } if (c == ‘ ‘ || c == ‘\t‘ || c == ‘\n‘) { state = OUT; } else if (state == OUT) { state = IN; ++numWords; } } printf("%d\t%d\t%d\n", numLines, numWords, numCharacters); return 0; }
#include <stdio.h> #define MAXLINE 1000 /* * 读入一行字符 */ int getline_s(char *s, int lim) { int c, i; for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != ‘\n‘; ++i) { s[i] = c; } if (c == ‘\n‘) { s[i] = c; ++i; } s[i] = ‘\0‘; return i; } /* * 拷贝数组 */ void copy(char *to, char *from) { int i = 0; while ((to[i] = from[i]) != ‘\0‘) { ++i; } } int main() { int len; int max = 0; char line[MAXLINE]; char longest[MAXLINE]; while ((len = getline_s(line, MAXLINE)) > 0) { if (len > max) { max = len; copy(longest, line); } } if (max > 0) { printf("%s\n", longest); } return 0; }
待续。。。。
[C/C++]重读《The C Programming Language》
标签:
原文地址:http://www.cnblogs.com/skycore/p/4852220.html