c++/c使用指针编写函数strcat()函数,实现两个字符串的首尾连接.

我的程序是这样的...#include<iostream>usingnamespacestd;intmain(){char*cmp(char*a,char*b);char... 我的程序是这样的...
#include <iostream>
using namespace std;
int main()
{
char *cmp(char *a,char *b) ;
char *p1,*p2,*point=NULL,str1[]="please",str2[50]="let me in";
p1=str1;p2=str2;
point=cmp(p1,p2);
p2=str2;
while(*point!='\0')
cout<<*point++;
cout<<endl;
return 0;
}
char *cmp(char *a,char *b)
{
char *temp=a;
while (*a!='\0')
a++;
while (*b!='\0')
*a++ = *b++;
return temp;
}
但是输出的结果却是“pleaselet Ι ”
展开
 我来答
xoalyg
2011-10-24 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2356万
展开全部

#include <iostream>

using namespace std;

int main() {

char *cat(char *a,char *b);

char s1[50] = "please ",*s2 = "let me in.";

puts(cat(s1,s2));

return 0;

}

char *cat(char *a,char *b) {

    char *p = a,*q = b; 

    while(*p++);

p--;

    while(*p++ = *q++);

*p = '\0';

return a; 

}

TableDI
2024-07-18 广告
VLOOKUP函数是Excel中用于数据匹配的重要工具。其使用方法是:在个参数中输入要查找的值,第二个参数是包含数据的范围或表格,第三个参数指定返回数据的列号,第四个参数(可选)决定查找方式(0为精确匹配,其他为近似匹配)。例如,假设我们想... 点击进入详情页
本回答由TableDI提供
万江曼
2011-10-24
知道答主
回答量:8
采纳率:0%
帮助的人:6.7万
展开全部
char *p1,*p2,*point=NULL,str1[]="please",str2[50]="let me in";
这一行中 str1[]改为 str1[50].
因为你的字符串数组大小比较小。
使用指针进行拷贝,而str1里面的空间只有7字节长,使用strcat函数就会越界,就会出现奇怪的显示了。你的函数没问题,但调用前,看下str1的空间是否有 原来字长+str2的长度这么大。否则出现乱码
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z286503288
推荐于2018-03-13 · 超过17用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:43.9万
展开全部
楼主,你如果要编写函数,首先要由个思想。
就是得到两个字符串的时候,如果要连接它们。
就要先得到它们的长度,然后动态申请个能包容它们的另外的一个指针。
然后在拷贝过去..
当然我是这么想的...
具体的代码就不用了吧~?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式