C++个人编程标准(字符、指针、字符串)
2017-09-05 17:24
274 查看
有头必有尾(’\0’)
字符数组的数组名指针不移动(arr[]中的arr)
指针要尽量少的使用,以免出界,多用下面的方式。
注意观察程序是死循环还是逻辑出错(死循环不报错一直跑,逻辑出错、指针出界等等都会报错)
善用调试!!!!!观察与自己想法不一样的程序段。 //VC6.0不容易调试,那就下全局断点,需要时间不多也很有效率。
这样做可以避免出错,毕竟利用指针进行函数重写一不小心就会出错。
下面附上经典头指针复制移动代码。
字符数组的数组名指针不移动(arr[]中的arr)
指针要尽量少的使用,以免出界,多用下面的方式。
注意观察程序是死循环还是逻辑出错(死循环不报错一直跑,逻辑出错、指针出界等等都会报错)
善用调试!!!!!观察与自己想法不一样的程序段。 //VC6.0不容易调试,那就下全局断点,需要时间不多也很有效率。
void dele() { int count = 0; while (*(str+count))//////////////////////////////////// { if (*(str + count) == ' ') { char *move_str = (str + count + 1); while (*move_str) { //防止内存泄漏 *(move_str - 1) = *move_str; move_str++; } *(move_str-1) = '\0';////////////////////////////// } else count++; } }
第二次更新
关于字符串的问题:尽量使用string.h里面的库函数,例如:strcpy,strcat等,避免发明轮子。这样做可以避免出错,毕竟利用指针进行函数重写一不小心就会出错。
第三次更新
对于指针的问题:没必要全部都替换为上面举例列出的方式,依然可以使用之前的模式,各有优缺点。用数字移动好处是不会牵扯到头指针移动,缺点是需要清楚的知道移动的次数;用头指针建立新变量的好处是不需要知道移动次数,只需知道临界条件即可,缺点是指针容易出界且不好调试。下面附上经典头指针复制移动代码。
void fun() { char *p1=p,*p2=NULL; while(*p1) { if(*p1<='9'&&*p1>='0') { p2=p1; while(*p2) { if(*p2<'0'||*p2>'9') { char temp=*p2; for(char *r=p2;r>p1;r--) { *r=*(r-1); } move(temp,*p1); p1++; } p2++; } } p1++; } }
相关文章推荐
- c/c++ 字符数组、字符指针和字符串类型总结帖
- 【C++编程技巧】根据字符串中的指定字符作为分界将字符串拆分
- C++第17周项目2——用指针玩字符串(2)删除字符
- C++中数字与字符串之间的转换(包括C++11新标准和宽窄字符转换)
- C和指针之字符串编程练习9(在参数1中查找匹配参数2额任意字符)
- c/c++ 字符数组、字符指针和字符串类型
- C++ 字符数组和字符指针和字符串
- C++ 第八课 标准c字符和字符串
- C/C++中,为什么字符串可以赋值给字符指针变量,单引号和双引号的区别
- C/C++(字符串处理)字符指针、字符数组用法大总结
- C/C++中,为什么字符串可以赋值给字符指针变量,单引号和双引号的区别
- C和指针之字符串编程练习11(统计一串字符包含the的个数)
- C/C++(字符串处理)字符指针、字符数组用法大总结
- C/C++字符串,字符数组,字符指针及其相互静态拷贝与追加的安全问题解决方案(1)
- 【C++】字符串——字符数组和字符指针浅谈
- C/C++ 指向字符的指针为什么可以用字符串来初始化,而不是字符地址。
- C、C++中字符串和字符指针之间的转换
- C++中的字符串指针和字符数组
- c++ primer plus 第五版 第七章 编程练习 第 8 题 (字符数组转成字符串,trim使用,判断空行)
- 2013级C++第17周项目【项目2-用指针玩字符串】--之任意删除字符串的字符