第16周项目2-(2)额。。。。

来源:互联网 发布:网校系统 java 编辑:程序博客网 时间:2024/05/22 02:29

问题及代码:

/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:text.cpp*作    者:赵敏*完成日期:2014年12月12日*版 本 号:v1.0**问题描述:略。*/#include<iostream>#include<cstdio>using namespace std;char *pstrcat(char *str1, const char *str2);//在下面的实现中,str1用指针法访问,而str2用下标法访问//在实际工程中,这种风格并不好,要尽可以用同一种方式,一般而言,指针法效率更高//此处str2用下标法访问,除了作为示例的考虑外,还有一个难言之隐//如果声明char *q,并用q=str2、q++等操作,这是非法的,因为str2有const的限制,从而赋值不兼容//如何修改,请思考int main(){    char str1[50]="I am very sad.";    char str2[50]="I am happy!";    pstrcat(str1,str2);    cout<<"字符串:"<<endl;    cout<<pstrcat(str1,str2)<<endl;    return 0;}char *pstrcat(char *str1, const char *str2){    char *p;    //char *q=str2;  //如果这样会出现错误,如何改程序,可有多种改法    int i;    for(p=str1; *p!='\0'; p++); //找到str1的结束    for(i=0; *(str2+i)!='\0'; i++,p++)  //如果q的定义通过,可以用*(q+i)代替*(str2+i)    {        *p=*(str2+i);    }    *p='\0';//切记!!    return str1;}


运行结果:

 

0 0