帮忙解决个问题,在线等。

yahagogo 2010-08-28 10:46:01
#include "stdio.h"
void fun(char *t,char *s)
{while(*t!=0)t++;
while ((*t++=*s++)!=0);
}
main()
{
char ss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);printf("%s,%s\n",ss,aa);
}
...全文
96 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
svtanto 2010-08-28
  • 打赏
  • 举报
回复

// 程序功能没有问题
#include "stdio.h"
// 用#include <stdio.h>风格较好,因为stdio.h是系统头文件
void fun(char *t,char *s)
{while(*t!=0)t++; // 把指针移到t指向的字符串的末尾'\0'的位置
while ((*t++=*s++)!=0); // 依次把s指向的字符串的每一个字符复制到t指向的字符串的后面,直到s字符串的末尾
}
main()
// 声明为 int main() 的风格较好
{
char ss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);printf("%s,%s\n",ss,aa);
// 最好有返回值 return 0;
}
yahagogo 2010-08-28
  • 打赏
  • 举报
回复
嗯啊,大家很厉害嘛,求解释求解释。
chaoliu1024 2010-08-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 csuxiaowu 的回复:]
引用 2 楼 zhzxlc_06 的回复:

while (*t != 0)
t++; 先把t移到末尾
while ((*t++ = *s++) != 0); 把s的值赋给t,直到遇到结束符..

难道是传说中的求解释?
[/Quote]我猜他是求解释...
dingshaofengbinbin 2010-08-28
  • 打赏
  • 举报
回复
上面写错了s1前面少个*号。
dingshaofengbinbin 2010-08-28
  • 打赏
  • 举报
回复
void fun(char *t,char *s)
{
char *t1=t,s1=s;
while(*t1!=0)t1++;
while ((*t1++=*s1++)!=0);
}
应该这样写后面才能调用printf("%s,%s\n",ss,aa);
要不然的话可能会发生内存越界。

Csuxiaowu 2010-08-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhzxlc_06 的回复:]

while (*t != 0)
t++; 先把t移到末尾
while ((*t++ = *s++) != 0); 把s的值赋给t,直到遇到结束符..
[/Quote]
难道是传说中的求解释?
yuanfang1hao 2010-08-28
  • 打赏
  • 举报
回复
讲话只讲前半句,楼主,你很无聊哎。。。

貌似容易出问题的地方是while ((*t++=*s++)!=0);
chaoliu1024 2010-08-28
  • 打赏
  • 举报
回复
while (*t != 0)
t++; 先把t移到末尾
while ((*t++ = *s++) != 0); 把s的值赋给t,直到遇到结束符..
Csuxiaowu 2010-08-28
  • 打赏
  • 举报
回复
什么问题????????????????????

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧