您的位置:首页 > 编程语言 > C语言/C++

C++个人编程标准(字符、指针、字符串)

2017-09-05 17:24 274 查看
有头必有尾(’\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++;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐