| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖
标题:连接两个字符串,为什么这样做不行
只看楼主 加入收藏
Quavarion
Rank: 2
等 级:论坛游民
帖 子:60
专家分:28
注 册:2009-10-9
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:4 
连接两个字符串,为什么这样做不行
将两个字符串连接在一起,这样做为什么不行?
#include<stdio.h>
#include<string.h>
void main()
{
  char s1[20],s2[20];
  int i,j;
   printf("Please input :\n");
    scanf("%s%s",s1,s2);
    for(i=0;i<=strlen(s2);i++)
     s1[(strlen(s1)+i)]=s2[i];
     printf("%s",s1);
     getch();

}
搜索更多相关主题的帖子: 字符 
2009-11-13 17:07
xuru1990
Rank: 2
等 级:论坛游民
帖 子:36
专家分:23
注 册:2009-10-28
收藏
得分:0 
输入有没问题;
如果输入的太长,两个之和大于20肯定不行啦
2009-11-13 17:29
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:10 

s1[(strlen(s1)+i)]=s2[i]; //你这里每次都获取s1的长度,s1有改变,s1结束符被复盖,获取s1长度就不对,用个变量在循环前获取一次s1长度就行了。
·
下面加了len变量,另外输入两字符的长度加起来要能大于20,否则也出错。
程序代码:
#include<stdio.h>
#include<string.h>
void main()
{
  char s1[20],s2[20];
  int i,j,len;
  printf("Please input :\n");
  scanf("%s%s",s1,s2);
  len=strlen(s1);
    for(i=0;i<=strlen(s2);i++)
        s1[(len+i)]=s2[i];
  printf("%s",s1);
  getch();

}

努力—前进—变老—退休—入土
2009-11-13 17:32
Quavarion
Rank: 2
等 级:论坛游民
帖 子:60
专家分:28
注 册:2009-10-9
收藏
得分:0 
   我怎么没看出呢
2009-11-13 18:03
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:10 
程序代码:
char *my_strstr(char *des, const char *s)
{
   char *start = des;
   while(*des++)
         ;
    des --;
    while(*des ++ = *s ++)
    ;
   return start;
}
参考strstr这个函数,很多途径可以实现这个功能。

要练习算法就来http:///!!有挑战哦!!
2009-11-13 23:35
快速回复:连接两个字符串,为什么这样做不行
数据加载中...
 
   



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

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