博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CS50 2016-Week 2 学习笔记
阅读量:4099 次
发布时间:2019-05-25

本文共 1669 字,大约阅读时间需要 5 分钟。

这一课先讲了调试程序(Debug),然后讲了代码正确性、代码设计、代码风格,最后讲了数组的概念。


DeBug

核心思想是程序报错后,能找到哪儿错了,怎么错的。

如果是语法错误,根据报错信息,大概能找到怎么错的。

如果是逻辑错误,可以自己在脑海中过一遍程序运行的流程,看哪儿有逻辑错误,或者自己在可能有问题的地方写测试代码。

C语言软件中有调试模式,可以帮助找错。

Python中的异常处理,try and except 可以在可能会出错的地方提供解决方案,或者报错。


代码风格

对于初学者,只要代码正确、能运行就挺好了。

代码风格,关于空格、缩进、适当地换行、核心的地方写注释、合适的命名这些。

C语言中代码风格至少要保证结构清晰、方便阅读。

Python中有PEP8编码规范,要多学习,多看别人好看的代码,自然会按照规范书写代码。



ASCII码

C语言中使用使用标准ASCII码,用7位二进制数来表示128个可能的字符。

C语言中%c 输出格式为字符,%i输出格式为整型。在最后输出时可以实现整型字符的转换,利用这个特性,可以查看0~127在ASCII码中对应的字符:

#include 
int main(void){ int i; for (i = 0; i <128; i++) { printf("%c in ASCII is %i\n",i, i); }}

这里写图片描述

97~122对应着a~z; 65~90对应着A~Z。(大小写相差32)

利用这个特性可以自己写大小写的转换,把所有字母转换成小写字母,或者把所有字母转换成大写字母。

如,将混在一起的大小写字母转换成大写字母:

#include 
main(){ char C[50] = "AhgiAgbkBKLujbYKBKbKbgkb"; int len = strlen(C); int i; for (i = 0; i < len; i++) { if ('a' <= C[i] && C[i] <= 'z') { printf("%c",C[i]-32); } else { printf("%c",C[i]); } } printf("\n"); printf("%s (The original string)",C);}

运行结果:

这里写图片描述


字符数组

上节课有C语言中几种变量类型,整型变量、实型变量、字符变量等。

可以使用char * 来定义字符串:char * s = "FengWeilei"; 修改于2017/09/07

C语言中不能直接定义字符串变量,只有char字符变量,一个char变量能存储一个字节,即一个字母(ASCII码)。

可以用数组来实现字符串的定义,每一个字符对应数组中的一个元素。

如下面代码:

#include 
//导入stdio头文件(标准库)int main(void) // 定义main函数,void表示运行时不需要传递参数{ char s[20] = "FengWeilei"; // 定义有20个元素的数组,初始化前11个字符元素为FengWeilei\0;\0表示Null,标志字符串的结尾 int i; for (i = 0; i < strlen(s); i++) // strlen(s)计算s元素个数,这里是10,最后Null没有算。 { printf("%c\n",s[i]); //逐个输出s数组中前10个元素 } printf("%s\n",s ); // 输出整个字符串 printf("The length of s is %i\n",strlen(s) );}

运行结果:

这里写图片描述

你可能感兴趣的文章
Servlet过滤器
查看>>
Servlet监听器
查看>>
文件上传下载
查看>>
Spring_AOP
查看>>
SpringMVC简单介绍与REST风格的URL
查看>>
Spring事务详解
查看>>
springMvc文件上传下载
查看>>
数据校验框架
查看>>
访问数据模块
查看>>
JDBC基础
查看>>
SpringMVC视图解析
查看>>
AJAX
查看>>
mybatis简介
查看>>
通过接口直接映射Sql
查看>>
MyBatis核心配置文件标签简介
查看>>
mybatis-动态SQL
查看>>
SpringBoot的基本配置
查看>>
SpringBoot集成MyBatis
查看>>
charles mock 数据返回
查看>>
H5微信支付
查看>>