注册 登录
编程论坛 C++教室

请高手帮做一个题目

吴飞 发布于 2008-10-19 09:45, 523 次点击
编程实现两个字符串的交换。例如,
  char *p1="hello"
  char *p2="good"
使用引用作函数参数,交换后为
p1: "hello"
p2:  "good"

4 回复
#2
blueboy820062008-10-19 11:18
我也汗...
#3
braveboy20082008-10-19 12:40
#include <iostream>
 
using namespace std;

void swap(const char *&p1,const char *&p2)   //地址的交换
{
    const char *temp;       //定义一个中间变量

    if (p1 == p2)     //两个指针指向同一个地址不需要交换
    {
        return;
    }
    else
    {
        temp = p1;
        p1 = p2;
        p2 = temp;
    }
}

void out(char *p)      //输出字符串
{
    for (int i=0;p[i]!='\0';++i)
    {
        cout << p[i];
    }    
}

int main()
{
    char *p1 = "hello";
    char *p2 = "good";
    
    cout << "未交换前:" << endl;

    cout << "p1: ";

    out(p1);

    cout << endl;
    cout << "p2: ";

    out(p2);
    
    cout << endl;

    cout << "交换后:" << endl;

    swap(p1,p2);
        
    cout << "p1: ";

    out(p1);

    cout << endl;
    cout << "p2: ";

    out(p2);

    cout << endl;

    return 0;
}
#4
kivcare2008-10-19 12:40
回复 1# 吴飞 的帖子
#include<iostream.h>
void swap(char *&chr1,char *&chr2);
void main()
{char *p1="hello";
  char *p2="good";

swap(p1,p2);
cout<<p1<<endl<<p2;}

void swap(char *&chr1,char *&chr2)
{char*temp;
temp=chr1;
chr1=chr2;
chr2=temp;
}
#5
hanpengqd2008-10-19 12:52
请自己做
1