C++菜鸟常见错误整理(第四天)
来源:互联网 发布:网络类型选择只有2g 编辑:程序博客网 时间:2024/05/16 04:20
本人目前还是学生,能力有限,有不足或者错误的地方欢迎大家指正,谢谢大家!
1、cctype 中的函数
isalnum(c) 如果 c 是字母或数字,则为 True。
isalpha(c) 如果 c 是字母,则为 true。
iscntrl(c) 如果 c 是控制字符,则为 true
isdigit(c) 如果 c 是数字,则为 true。
isgraph(c) 如果 c 不是空格,但可打印,则为 true。
islower(c) 如果 c 是小写字母,则为 true。
isprint(c) 如果 c 是可打印的字符,则为 true。
ispunct(c) 如果 c 是标点符号,则 true。
isspace(c) 如果 c 是空白字符,则为 true。
isupper(c) 如果 c 是大写字母,则 true。
isxdigit(c) 如果是 c 十六进制数,则为 true。
tolower(c) 如果 c 大写字母,返回其小写字母形式,否则直接返回 c。
toupper(c) 如果 c 是小写字母,则返回其大写字母形式,否则直接返回 c。
2、指针地址
char *cp1 = "some value"; cp1=cp2;if (cp1 < cp2) 比较的是指针上存放的地址,并非他们指向的字符的值、
如果 cp1 和 cp2 指向同一数组中的元素(或该数组的溢出位置),上述表达式等效于比较在 cp1 和 cp2 中存放的地址;如果这两个指针指向不同的数组,则该表达式实现的比较没有定义。
3、字符串的比较
字符串的比较和比较结果的解释都须使用标准库函数 strcmp 进行:
const char *cp1 = "A string example";
const char *cp2 = "A different string";
int i = strcmp(cp1, cp2);
i = strcmp(cp2, cp1);
i = strcmp(cp1, cp1);
标准库函数 strcmp 有 3 种可能的返回值:若两个字符串相等,则返回 0值;若第一个字符串大于第二个字符串,则返回正数,否则返回负数。
4、字符串要以null结束
在使用处理 C 风格字符串的标准库函数时,牢记字符串必须以结束符 null结束:char ca[] = {'C', '+', '+'}; cout << strlen(ca) << endl;在这个例题中,ca 是一个没有 null 结束符
字符数组,则计算的结果不可预料。标准库函数 strlen 总是假定其参数字符串以 null 字符结束,当调用该标准库函数时,系统将会从实参 ca 指向的内存空间开始一直搜索结束
符,直到恰好遇到 null 为止。strlen 返回这一段内存空间中总共有多少个字符,无论如何这个数值不可能是正确使用C++标准库类型string,不会出现在字符串后面添加内容的问
题。
5、动态分配存储空间
C 语言程序使用一对标准库函数malloc 和 free 在自由存储区中分配存储空间,而 C++ 语言则使用 new 和delete 表达式实现相同的功能。
6、动态数组的定义
int *p=new int[10];在自由存储中创建的数组对象是没有名字的,只能通过其地址间接访问堆中的对象
string *psa = new string[10]; // array of 10 empty strings已经初始化
int *pia = new int[10]; // array of 10 uninitialized ints未初始化,可使用跟在数组长度后面的一对空圆括号,对数组元素做值初始化
int *pia2 = new int[10] (); 圆括号要求编译器对数组做值初始化,在本例中即把数组元素都设置为0。
对于动态分配的数组,其元素只能初始化为元素类型的默认值,而不能像数组变量一样,用初始化列表为数组元素提供各不相同的初值。
const数组必须初始化const int *pci_ok = new const int[100]();//初始化全为零。 或者是类类型数组,默认的构造函数对其初始化
今天就到这里,有不足的地方还请指正,谢谢大家!
- C++菜鸟常见错误整理(第四天)
- C++菜鸟常见错误整理(第二天)
- C++菜鸟常见错误整理(第六天)
- C++菜鸟常见错误整理(第十天)
- C++菜鸟常见错误整理(第十二天)
- C++菜鸟常见错误整理(第一天)
- C++菜鸟常见错误整理(第三天)
- C++菜鸟常见错误整理(第五天)
- C++菜鸟常见错误整理(第八天)
- C++菜鸟常见错误整理(第九天)
- C++菜鸟常见错误整理(第十一天)
- C++菜鸟常见错误整理(第十三天)
- C++菜鸟常见错误整理(第十四天)
- C++菜鸟常见错误整理(第七天)
- C/C++常见编译错误整理
- 【整理】常见错误整理
- 菜鸟路--第四天
- 菜鸟的第四天
- Magento中目录添加自定义属性代码
- uBuntu root用户和user用户的切换
- Putty编译
- [JAVA VC] 短网址生成,HTTP请求,随想
- 批量修改magento产品库存数量
- C++菜鸟常见错误整理(第四天)
- SQlite 数据库选用参考
- matlab加快仿真速度
- hdoj_2045 不容易系列之(3)—— LELE的RPG难题
- csapp2e 家庭作业 3.64
- eclipse_64位 反编译插件:jadclipse3.3
- 强不知以为知 怎能善其事
- Linux系统中查看硬件等信息的方法
- Magento导出所有分类ID和名称到数组中