用指针型函数(函数返回值为指针)实现字符串连接函数strcat()的功能,将两个字符串连接起来
#include<stdio.h>main(){char*p(char*a,char*b);chari[20],j[20];printf("请输入字符串1:");scan...
#include<stdio.h>
main()
{
char *p(char *a,char *b);
char i[20],j[20];
printf("请输入字符串1:");
scanf("%s", i);
printf("请输入字符串2:");
scanf("%s", j);
p(i,j);
printf("%s\n",*p);
}
char *p(char *a,char *b)
{
char *c=a;
while(*a!='\0')
a++;
while(*b!='\0')
{
*a=*b;
a++;
b++;
}
*a='\0';
return(*a)
}
为什么输出的是乱码呢?大神求助! 展开
main()
{
char *p(char *a,char *b);
char i[20],j[20];
printf("请输入字符串1:");
scanf("%s", i);
printf("请输入字符串2:");
scanf("%s", j);
p(i,j);
printf("%s\n",*p);
}
char *p(char *a,char *b)
{
char *c=a;
while(*a!='\0')
a++;
while(*b!='\0')
{
*a=*b;
a++;
b++;
}
*a='\0';
return(*a)
}
为什么输出的是乱码呢?大神求助! 展开
展开全部
其实你主体写得很好了,只是没明确到底是做什么:
#include<stdio.h>
void main()
{
char *p(char *a,char *b);
char i[20],j[20];
printf("请输入字符串1:");
scanf("%s", i);
printf("请输入字符串2:");
scanf("%s", j);
//p(i,j);
printf("%s\n",p(i,j));//*p你要输出的是字符串,应该输入字符串连接后的字符串的地址
}
char *p(char *a,char *b)
{
char *c=a;
while(*a!='\0')
a++;
while(*b!='\0')
{
*a=*b;
a++;
b++;
}
*a='\0';
return c; //return(*a)应该返回连接后字符串的首地址,不是单个字符
}
追答
不是啊,你没看到你多调用了一次p(i,j);
而我已经把printf之前的
p(i,j);已经注释了么?
//p(i,j);已经注释了,你的没有注释,也就运行了两次,
不就多连接了一次第二个字符串么?
展开全部
#include<stdio.h>
int main()//
{
char *p(char *a,char *b);
char i[20],j[20];
printf("请输入字符串1:");
scanf("%s", i);
printf("请输入字符串2:");
scanf("%s", j);
p(i,j);
printf("%s\n",i);//
return 0;//
}
char *p(char *a,char *b)
{
char *c=a;
while(*a!='\0')
a++;
while(*b!='\0')
{
*a=*b;
a++;
b++;
}
*a='\0';
return(*c);//
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询