| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 544 人关注过本帖
标题:[求助]一个初学者的一点问题!
只看楼主 加入收藏
zero442
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-5-26
收藏
 问题点数:0 回复次数:9 
[求助]一个初学者的一点问题!

strcen(char a[],char b[])
{
int num=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n])
{
*(a+num)=b[n];
num++;
n++;
}
*(a+num)='\0';
return(num);
}
main()
{
char x[]="abcdefg",y[]="hijklmn";
int num;
strcen(x,y);
printf("%d",num);
getch();
}
这个是小弟自己写的一个程序啊!
把b字符串连接到a字符串的后面,并返回a中新串的长度!
这个程序运行结果不真确啊!
请帮小弟指出来!改正啊!

2006-09-10 22:11
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 
以下是引用zero442在2006-9-10 22:11:25的发言:

strcen(char a[],char b[]) //这个应该是一个有返回值的函数
{
int num=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n])
{
*(a+num)=b[n];
num++;
n++;
}
*(a+num)='\0';
return(num);
}
main()
{
char x[]="abcdefg",y[]="hijklmn"; //因为以后还有给x[]数组增加数值,所以,这里你应该给它个范围如 x[20]
int num;
strcen(x,y);    // 这里应该是 num=strcen(x,y)
printf("%d",num);
getch();
}
这个是小弟自己写的一个程序啊!
把b字符串连接到a字符串的后面,并返回a中新串的长度!
这个程序运行结果不真确啊!
请帮小弟指出来!改正啊!


只剩一年了………… 够了!
2006-09-10 23:39
honkerman
Rank: 2
等 级:新手上路
威 望:4
帖 子:3078
专家分:0
注 册:2006-8-25
收藏
得分:0 

#include"stdio.h"
int strcen(char *a,char *b)
{

int i=0,j=0;
while(*(a+i)!='\0')
i++;
while(*(b+j)!='\0')
{
*(a+i+j)=*(b+j);
j++;

}
*(a+i+j)='\0';
return j+i;
}
void main()
{
char x[50]="abcdefg",y[50]="hsfdgsdfhdfhsdfh";
int num;
num=strcen(x,y);
printf("%d",num);

}
哎,要睡觉了,看看合你意思吧


" target="_blank">God Bless You[GLOW=255,#00ff00,2]My Friends![/GLOW]
2006-09-10 23:48
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用zero442在2006-9-10 22:11:25的发言:

strcen(char a[],char b[])
{
int num=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n])
{
*(a+num)=b[n];
num++;
n++;
}
*(a+num)='\0';
return(num);//没有必要
}
main()
{
char x[]="abcdefg",y[]="hijklmn";//如此定义则限制数组大小,要复制的内容放在何处?
int num;
strcen(x,y);
printf("%d",num);//觉得这里输出的是字符串X而不是长度
getch();
}
这个是小弟自己写的一个程序啊!
把b字符串连接到a字符串的后面,并返回a中新串的长度!
这个程序运行结果不真确啊!
请帮小弟指出来!改正啊!


倚天照海花无数,流水高山心自知。
2006-09-10 23:50
honkerman
Rank: 2
等 级:新手上路
威 望:4
帖 子:3078
专家分:0
注 册:2006-8-25
收藏
得分:0 
以下是引用nuciewth在2006-9-10 23:50:35的发言:

以下是引用zero442在2006-9-10 22:11:25的发言:

strcen(char a[],char b[])
{
int num=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n])
{
*(a+num)=b[n];
num++;
n++;
}
*(a+num)='\0';
return(num);//没有必要
}
main()
{
char x[]="abcdefg",y[]="hijklmn";//如此定义则限制数组大小,要复制的内容放在何处?
int num;
strcen(x,y);
printf("%d",num);//这里是-858993460,num不知道该等于啥~~
getch();
}
这个是小弟自己写的一个程序啊!
把b字符串连接到a字符串的后面,并返回a中新串的长度!
这个程序运行结果不真确啊!
请帮小弟指出来!改正啊!


" target="_blank">God Bless You[GLOW=255,#00ff00,2]My Friends![/GLOW]
2006-09-11 00:02
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
看来楼主没有领会到我的意思.你的做法有点本末倒置.
我是说,你的程序是字符串连接,只要做好连接,并能正确的显示出来就可以了,返回num没有必要,如果a[]里有乱码,但恰好num又返回正确(程序可能某些逻辑错误导致),这样你还是没有办法证明你的程序是对的.

void strcen(char a[],char b[])
{
int num=0,n=0;
while(*(a+num)!='\0')num++;
while(b[n])
{
*(a+num)=b[n];
num++;
n++;
}
*(a+num)='\0';

}
main()
{
char x[50]="abcdefg",y[30]="hijklmn";//如此定义则限制数组大小,要复制的内容放在何处?

strcen(x,y);
printf("%s\n",x);
getch();
}

倚天照海花无数,流水高山心自知。
2006-09-11 08:37
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 
这个是小弟自己写的一个程序啊!
把b字符串连接到a字符串的后面,并返回a中新串的长度!
这个程序运行结果不真确啊!
请帮小弟指出来!改正啊!

版主,人家问的是返回新字符串的长度,呵呵


只剩一年了………… 够了!
2006-09-11 08:49
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 


题目都没看清,那就加上吧,不过printf("%s\n",a);是不能少的.

倚天照海花无数,流水高山心自知。
2006-09-11 09:06
alfredsue
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-10
收藏
得分:0 
这种问题随便看几下c语言的书不就行啦
多看书啦,书是最好的老师
不过在这里和大家一起讨论也是蛮不错的
呵呵

2006-09-11 12:44
zero442
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-5-26
收藏
得分:0 
[QUOTE]
char x[]="abcdefg",y[]="hijklmn";//如此定义则限制数组大小,要复制的内容放在何处?
[/QUOTE]
这里我原本真的不知道会造成这个样的后果啊!!
谢谢拉!现在我懂了!

还是不知道怎么会有这样的想法,但是我永远之爱你一个!!
2006-09-12 20:25
快速回复:[求助]一个初学者的一点问题!
数据加载中...
 
   



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

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