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)

相关推荐
IKUN家族8 小时前
Spring MVC(一)
java·spring·mvc
老马识途2.09 小时前
关于跨域问题的总结
java·前端
都叫我大帅哥10 小时前
Java日期时间三十年战争:从Date考古到LocalDateTime革命,以及数据库与前端的那点事儿
java
Muscleheng10 小时前
SpringBoot 集成 DeepSeek 实现 RAG 文档问答
java·spring boot·ai·springai
2501_9364156911 小时前
可变参数&综合练习&斗地主游戏
java·windows·游戏
麻瓜老宋11 小时前
AI开发C语言应用按步走,表达式计算器calc的第二十二步,分号赋值链式修复、TOKEN_ASSIGN
c语言·开发语言·atomcode
极客先躯12 小时前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
FellAveal12 小时前
【Go语言入门学习笔记】Part18.工作池与WaitGroup(也即协程池)
笔记·学习·golang
xqqxqxxq12 小时前
Java Socket 多人聊天室(私聊+群聊)技术笔记(V4版本)
java·网络·笔记
龙仔72512 小时前
人大金仓OS_Core数据库自动备份实施笔记(银河麒麟Linux)
linux·数据库·笔记·备份·人大金仓