| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 803 人关注过本帖
标题:[讨论]两个程序的差别, 搞笑!
取消只看楼主 加入收藏
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
 问题点数:0 回复次数:4 
[讨论]两个程序的差别, 搞笑!

两个程序均想实现字符连接功能,第一个函数输出为:fdsaqwerfdsa,第二个输出正确,结果是qwerfdsa

请问,程序1错在何处?

程序1

char stringcat(char *str1,char *str2)
{
int c=strlen(str1);
for(;*(str1+c)=*str2,*str2!='\0';str1++,str2++)
;

printf("%s",str1);
}

void main()
{char *s1,temp[50]="qwer";
char *s2="fdsa";
s1=temp;
printf("%s",s1);puts("\n");
printf("%s",s2);puts("\n");
s1=temp;
stringcat(s1,s2);
printf("%s",s1);
puts("\n");
getch();
}


程序2

char strcat1(char *str1,char *str2)
{
while(*str1!='\0')
str1++;
for(;*str1=*str2;str1++,str2++);
return *str1;
}

void main()
{char *s1,temp[50]="qwer";
char *s2="fdsa";
s1=temp;
printf("%s",s1);puts("\n");
printf("%s",s2);puts("\n");
s1=temp;
stringcat(s1,s2);
printf("%s",s1);
puts("\n");
getch();
}


搜索更多相关主题的帖子: 搞笑 
2007-07-29 20:51
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
得分:0 

对了我的环境是win-tc 1.91


2007-07-29 20:53
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
得分:0 

oh my Holy God!i am so sorry,the code is right!


2007-07-29 21:06
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
得分:0 
以下是引用anelwl在2007-7-30 10:56:34的发言:

我知道了:
char stringcat(char *str1,char *str2)
{
int c=strlen(str1);
for(;*(str1+c)=*str2,*str2!='\0';str1++,str2++)
;

printf("%s",str1);/*这里str1的地址其实已经指向了str2,因此输出为str2的字符串 */
}


void main()
{char *s1,temp[50]="qwer";
char *s2="fdsa";
s1=temp;
printf("%s",s1);puts("\n");
printf("%s",s2);puts("\n");
s1=temp;
stringcat(s1,s2);/*调用函数,输出s2的字符串*/
printf("%s",s1);/*这才是拷贝后的字符串*/
puts("\n");
getch();
}

你说的不对,str1没有指向str2,错在str1当时已经指向初始地址+c了。


2007-07-30 20:14
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
得分:0 

你说的是不要返回地址,而应返回指针,对吗?
为什么?

[此贴子已经被作者于2007-7-31 16:32:01编辑过]


2007-07-31 16:30
快速回复:[讨论]两个程序的差别, 搞笑!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015769 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved