| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 873 人关注过本帖
标题:关于字符串指针问题
取消只看楼主 加入收藏
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
 问题点数:0 回复次数:4 
关于字符串指针问题

老师让用引用完成字符串交换
每次我运行都是错
要不第一个字符没拷过去
要不就是指针错误
我跟踪了 不是指针没申请私有空间的错
莫名其妙的错 眼睁的看传过去了 一会又不是了
#include <iostream.h>
void swap(char* &rap,char* &rbp);
void main()
{
char *ap="hello";
char *bp="how are you";

swap(ap,bp);

cout<<ap<<endl;
cout<<bp<<endl;

}
void swap(char* &rap,char* &rbp)
{
char* tmp;
int i;

for(i=0;*rap!=0;i++)
{
*(tmp++)=*(rap++);
}

*tmp=0;//加尾节点
rap-=i;//指针复位
tmp-=(i+1);

for(i=0;*rbp!=0;i++)
{
*(rap++)=*(rbp++);
}

*rap=0;
rap-=(i+1);
rbp-=i;


for(i=0;*tmp!=0;i++)
{
*(rbp++)=*(tmp++);
}

*rbp=0;
rbp-=(i+1);
}

搜索更多相关主题的帖子: 字符 指针 
2006-03-31 12:45
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
但是我想知道我那哪里错了呀


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-03-31 13:11
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
还有一点不明白
为什么
cout<<字符指针
为什么能把所有内容输出
按理讲应该是第一个呀
cout后面传递的不是一个地址吗
可cout<<*P;
就是输出第一个
而*P不是第一个的内容吗


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-03-31 13:16
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
我申请空间了
也是错呀

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-03-31 13:17
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
首先谢谢名人
还有一点不明白
为什么
cout<<字符指针
为什么能把所有内容输出
按理讲应该是第一个呀
cout后面传递的不是一个地址吗
可cout<<*P;
就是输出第一个
而*P不是第一个的内容吗
还有
*tmp=0;//加尾?点
rap -= i;//指??位
tmp -= i;
这里的tmp已经多加了一位0 应该-(i+1)吧


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-03-31 18:04
快速回复:关于字符串指针问题
数据加载中...
 
   



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

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