标题:在这个程序里'\0'是不是什么都没有的意思呀
只看楼主
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
 问题点数:0 回复次数:3 
在这个程序里'\0'是不是什么都没有的意思呀

这是一个把字符串逆向输出的代码.有一段代码看不明白,请大家指点~~~
#include <iostream.h>
char* flip(char *str)
{
char *p1,*p2,ch;
p1=p2=str;
while(*p2!='\0')//没有看明白这个小语句的意思,哪位大哥给解释一下把,
p2++;//'\0'这个转义符号我也不明白是什么意思.
p2--;//这2句,P2++和P2--很不理解?

while(p1<p2)
{
ch=*p2;*p2=*p1;*p1=ch;
p1++;p2--;
}
return str;
}
void main()
{
char str[]="ABCDEFG";
cout<<flip(str)<<"\n";
}

[此贴子已经被作者于2005-11-3 13:40:44编辑过]

搜索更多相关主题的帖子: include 字符串 color 
2005-11-03 13:27
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
得分:0 
'\0'表示字符串的末尾
就是str[]实际存储的是ABCDEFG\0


... ...
char* flip(char *str)
{
char *p1,*p2,ch;
p1=p2=str;

while(*p2!='\0')
{
p2++;
}//加个"{ }"就明白什么意思了吧:就是让数组最后一个字符('\0')的地址保存在p2中 即*p2='\0'
//循环结束
p2--;
//p2--意思是p2所指向的是数组倒数第二个字符('G')的地址 即*p2='G'

while(p1<p2)//用循环来交换*p1和*p2中的字符(循环刚开始时*p1='A' *p2='G')
{
ch=*p2;*p2=*p1;*p1=ch;
p1++;p2--;
}
return str;
}

... ...

[此贴子已经被作者于2005-11-3 15:37:54编辑过]


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2005-11-03 15:32
yaoguai2005
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2005-9-11
得分:0 

你这样一说
我就完全明白了饿
干脆你去出书卖好了
讲解的太好了


2005-11-03 18:10
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
得分:0 

呵呵 过奖...


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2005-11-03 21:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-32443-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.098162 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved