这一课先讲了调试程序(Debug),然后讲了代码正确性、代码设计、代码风格,最后讲了数组的概念。
DeBug
核心思想是程序报错后,能找到哪儿错了,怎么错的。
如果是语法错误,根据报错信息,大概能找到怎么错的。
如果是逻辑错误,可以自己在脑海中过一遍程序运行的流程,看哪儿有逻辑错误,或者自己在可能有问题的地方写测试代码。
C语言软件中有调试模式,可以帮助找错。
Python中的异常处理,try and except
可以在可能会出错的地方提供解决方案,或者报错。
代码风格
对于初学者,只要代码正确、能运行就挺好了。
代码风格,关于空格、缩进、适当地换行、核心的地方写注释、合适的命名这些。
C语言中代码风格至少要保证结构清晰、方便阅读。
Python中有PEP8编码规范,要多学习,多看别人好看的代码,自然会按照规范书写代码。
ASCII码
C语言中使用使用标准ASCII码,用7位二进制数来表示128个可能的字符。
C语言中%c
输出格式为字符,%i
输出格式为整型。在最后输出时可以实现整型字符的转换,利用这个特性,可以查看0~127在ASCII码中对应的字符:
#include <stdio.h>
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 <stdio.h>
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.h> //导入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) );
}
运行结果: