Programming abstractions in C阅读笔记:p123-p126

《Programming Abstractions In C》学习第50天,p123-p126,总结如下:

一、技术总结

1.notaion

这也是一个在计算机相关书籍中出现的词,但有时却不是那么好理解,因为它可以指代很多对象,这里做一个记录。示例:p124。

In C, you can use any character array to hold string data.

c 复制代码
char str[6] = {'h', ' ', 'l', ' ', 'o', '\0'};

or, more compactly,

c 复制代码
char str[6] = "hello";

If you use array notation, the standar idion for processing every character in a string looks like this:

c 复制代码
for (int i = 0; str[i] != '\0'; i++) {

  printf("i=%d\n", str1[i]);

}

在这里,"notation"以理解为"the activity of representing sth by a special system of marks or character",即"notation"表示的是一种"标记方法"、"表示方法"。

2.字符串用法示例

c 复制代码
#include <stdio.h>

// 统计字符串中的空格(space):数组版
static int CountSpaces(char str[]) {
    int i, nSpaces;

    nSpaces = 0;
    for (i = 0; str[i] != '\0'; i++) {
        if (str[i] == ' ') {
            nSpaces++;
        }
    }
    return nSpaces;
}

// 统计字符串中的空格(space):指针版
static int CountSpaces1(char *str) {
    int nSpaces;
    char *cp;

    nSpaces = 0;
    for (cp = str; *cp != '\0'; cp++) {
        if (*cp == ' ') {
            nSpaces++;
        }
    }
    return nSpaces;

}


int main() {
    // 方式一:declare and initialize a string "hello"
    char str1[6] = {'h', ' ', 'l', ' ', 'o', '\0'};
    // 遍历字符串
    for (int i = 0; str1[i] != '\0'; i++) {
        printf("i=%d\n", str1[i]);
    }

    // 方式二:更紧凑(compactly)
    char str2[6] = "hello";

    // 统计字符串中的空格
    int n;
    n = CountSpaces(str1);
    printf("\nthe number of spaces in string is: %d\n", n); // 2

    // 统计字符串中的空格
    int n1;
    n1 = CountSpaces1(str1);
    printf("\nthe number of spaces in string is: %d\n", n1); // 2


}

二、英语总结

1.perfectively什么意思?

答:perfect是"完美的"之意,但是perfectly翻译的时候直接翻译成"完美地"却不大合适。应该翻译成"adv. perfectly can alse mean very or compeletly"(很,非常)更好,当然,其实这个意思也是"in a perfect way"。

2.likelihood什么意思?

答:u.the chance than sth will happen(可能性),同义词:possibility。

三、参考资料

1. 编程

(1)Eric S.Roberts,《Programming Abstractions in C》:https://book.douban.com/subject/2003414

2. 英语

(1)Etymology Dictionary:https://www.etymonline.com

(2) Cambridage Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

相关推荐
月夕·花晨2 分钟前
Gateway -网关
java·服务器·分布式·后端·spring cloud·微服务·gateway
失散132 分钟前
分布式专题——6 Redis缓存设计与性能优化
java·redis·分布式·缓存·架构
杏花春雨江南2 分钟前
Spring Cloud Gateway 作为一个独立的服务进行部署吗
java·开发语言
GSDjisidi3 分钟前
东京本社招聘 | 财务负责人 & 多个日本IT岗位(Java/C++/Python/AWS 等),IT营业同步招募
java·开发语言·aws
叫我阿柒啊14 分钟前
Java全栈开发面试实战:从基础到微服务的完整技术栈解析
java·spring boot·微服务·前端框架·vue·jwt·全栈开发
前行的小黑炭16 分钟前
Android:在项目当中可能会遇到的ANR,应该如何解决?
android·java·kotlin
索迪迈科技1 小时前
Flink Task线程处理模型:Mailbox
java·大数据·开发语言·数据结构·算法·flink
草莓熊Lotso2 小时前
《算法闯关指南:优选算法-双指针》--01移动零,02复写零
c语言·c++·经验分享·算法·leetcode
float_六七5 小时前
IntelliJ IDEA双击Ctrl的妙用
java·ide·intellij-idea