这里仅记录一些零碎的知识点,一些系统的归纳和总结会在后续给出。
1.一些非常有用的函数
//把字母转换成小写字母,对于数字则不进行转化
参数
c -- 这是要被转换为小写的字母。
返回值
如果 c 有相对应的小写字母,则该函数返回 c 的小写字母,否则 c 保持不变。返回值是一个可被隐式转换为 char 类型的 int 值。
int tolower(int c);
参数
c -- 这是要检查的字符。
返回值
如果 c 是一个数字或一个字母,则该函数返回非零值,否则返回 0。
//判断是否是字母或者数字
int isalnum(int c);
函数声明:int isspace(int c);
若c为空白符,则返回非零值(true),若c不是空白符,则返回0(false)
使用
if(isspace()) {
xxx
}
isdigit()函数的作用:判断字符串中的某个元素是否为0-9之间的阿拉伯数字
所在头文件为#include <ctype.h>
函数原型int isdigit(int c);
若参数c为阿拉伯数字,则返回非0值,否则返回0
2.一些内置的常量
INT_MAX 和 INT_MIN
int min=INT_MIN;
int max=INT_MAX;
比如 要在一个数组中找出最大值,那么可以先定义一个最小值max=INT_MIN,
然后那数组中每一个数去和max 对比.
if(array[i]>max)
max=array[i];
NT_MIN在标准头文件limits.h中的定义
#define INT_MAX 2147483647,他表示32位中的整数的最大值,虽然一般电脑是64位的,但是通用的程序中这个变量还是定义成32位的
#define INT_MIN (-INT_MAX - 1)这里没有简单地将INT_MIN赋值成-2147483647,是因为-2147483648对于编译器而言是个表达式,而2147483648对于32-bit整数是无法表示的,
所以经过这个表达式的结果是未定义的。在GCC上直接写-2147483648后,编译器给出了警告,说结果是unsigned。
nullptr 和 null
这两个常量在树的数据结构中经常用到。
nullptr是c++11中的关键字,表示空指针。而null在C++中则表示一个常数0.
所以在c++中int *p=NULL; 实际表示将指针P的值赋为0,而c++中当一个指针的值为0时,认为指针为空指针。
nullptr是一个字面值常量,类型为std::nullptr_t,空指针常数可以转换为任意类型的指针类型。
总结:C++一般用nullptr就行了,比较符合习惯