码迷,mamicode.com
首页 > 编程语言 > 详细

[C/C++]重读《The C Programming Language》

时间:2015-10-02 17:19:40      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

第一次读这本书的时候是大三初,现在打算重读一遍!。

第一章 导言

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!