| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1213 人关注过本帖
标题:请看看我的程序问题在哪(somebody help me,please)
只看楼主 加入收藏
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
 问题点数:0 回复次数:17 
请看看我的程序问题在哪(somebody help me,please)

#include "stdio.h"
#include "conio.h"
#include "string.h"

char stringcat(char *str1,char *str2);
main()
{

char *string1,*string2;

gets(string1);
gets(string2);
stringcat(string1,string2);

getch();

}

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

printf("%s",str1);
}

我想实现的功能是字符串相连接.比如说s1=eeeee,s2=ssss将s2中的字符加到s1后,输出s1,得到s1=eeeeessss.
但我在win-tc 1.91上结果是s1=essss.把四个e给覆盖了,请高手帮我改改。

[此贴子已经被作者于2007-7-29 16:45:54编辑过]

搜索更多相关主题的帖子: somebody please help 
2007-07-29 15:21
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
string1,string2都没有地址 你能通过编译吗?

要连接 你就得新new一个字符串,长度为string1,string2的总长度+1

然后把string1,string2的字符依次取出赋给新的字符串元素

或者string1,string2 strcpy到新字符串的相应位置

天行健,君子以自强不息!!QQ:68660681
2007-07-29 15:28
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
得分:0 
gets()函数会自动返回一个地址给string1,string2的。
我不想用其它的字符串。能做不?

原题是这样的:

实现strcat()的功能

strcat(char *str1,char *str2)
{while(*str1!='\0')
___________(1)
for(;______(2);str1++,str2++)
{}
}
问_____(1) _______(2)处各添什么

[此贴子已经被作者于2007-7-29 15:45:58编辑过]


2007-07-29 15:44
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
gets()函数会自动返回一个地址给string1,string2的。
这么强?什么编译器哦?

想不从新分配空间那就得给str1的空间足够长,至少能同时容下str1和str2

把你的程序最后一个 printf("%s",str1);改成printf("%s",str1-c);

天行健,君子以自强不息!!QQ:68660681
2007-07-29 18:03
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
得分:0 
回复:(maoguoqing)gets()函数会自动返回一个地址给...
像你说的那样我做了以后,编译不了了。

2007-07-29 20:09
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
什么错?

天行健,君子以自强不息!!QQ:68660681
2007-07-29 20:10
jianweichief
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2007-7-18
收藏
得分:0 
未定义的符号‘c’在stringcat函数中

2007-07-29 21:51
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
c不是你求的字符串的长度嘛

天行健,君子以自强不息!!QQ:68660681
2007-07-29 21:53
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
收藏
得分:0 
字符串拷贝的我以前回复了两次,找出来贴给你参考:
#include<string.h>
#include<malloc.h>
#include<stdio.h>

char * Mystrcat(char * str_1,char *str_2);
int main()
{
char *string;
string = Mystrcat("hello ","word");
puts(string);
return 0;
}

char * Mystrcat(char * str_1,char *str_2)
{
char *array,*ptr;

ptr=array=(char *)malloc(strlen(str_1)+strlen(str_2));
while(*ptr++ = *str_1++) ;
ptr--;
while(*ptr++ = *str_2++) ;

return array;
}
2007-07-29 22:45
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 
char *string1,*string2;
这样定义最好少用
2007-07-29 22:50
快速回复:请看看我的程序问题在哪(somebody help me,please)
数据加载中...
 
   



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

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