c语言这个程序怎么输出结果是一个问号,这是个连接字符串程序 #include "stdafx.h"

c语言这个程序怎么输出结果是一个问号,这是个连接字符串程序#include "stdafx.h"#include "malloc.h"char... c语言这个程序怎么输出结果是一个问号,这是个连接字符串程序
#include "stdafx.h"
#include "malloc.h"
char *mystrcat(char *s,char *ct)   //字符串连接
{
while(*(s++));
s--;
while(*ct)
*(s++) = *(ct++);
return s;
}
void main()
{ char s1,s2;
char *s,*ct;
s = &s1;
ct = &s2;
printf("请输入字符串1:");
scanf("%s",&s);
printf("请输入字符串2:");
scanf("%s",&ct);
printf("%s\n",*mystrcat);
}
展开
 我来答
lbiiun
2013-12-05 · TA获得超过428个赞
知道小有建树答主
回答量:131
采纳率:100%
帮助的人:53万
展开全部
还有个问题是:mystrcat最后return s;
但是这个s已经不是指定字符串的开始了。换句话说,你成功的连接了字符串,但是你返回的是这字符串之后的地址空间。
char *mystrcat(char *s,char *ct) //字符串连接
{
char * const ret = s;
while(*(s++));
s--;
while(*ct)
*(s++) = *(ct++);
return ret;
}
追问
我看不懂,但是跑过了,不行啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
478617
2013-12-05 · TA获得超过875个赞
知道小有建树答主
回答量:725
采纳率:100%
帮助的人:95.2万
展开全部
char s1,s2;只是字符,不是字符串。改一下就可以了。

char s1[128],s2[128];
char *s,*ct;
s = s1;
ct = s2;
更多追问追答
追问
改了,还是输出了问号,这是什么原因
追答
printf("%s\n",mystrcat(s, ct));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式