| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1984 人关注过本帖, 1 人收藏
标题:一个关于将字符串连接起来的问题
只看楼主 加入收藏
雾雨淼淼
Rank: 2
来 自:甘肃金昌
等 级:论坛游民
帖 子:85
专家分:89
注 册:2010-8-17
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:11 
一个关于将字符串连接起来的问题
请各位高手帮我看看这个程序在哪错了,运行部正常
# include <stdio.h>
void main()
{
  void strlink(char *s,char *t);  //将字符串t连接到字符串s的后面
  char sou[]={"He is "};
  char des[]={"a boy!"};
  int m=strlen(sou);
  int n=strlen(des);
  int i;
  strlink(sou,des);
  for (i=0;i<=m+n;i++)
      printf("%c",*(sou+i));
  printf("\n");
}
void strlink(char *s,char *t)
{
  int i=0;
  while(*s++ != '\0')
     ;
  for(;*(t+i) != '\0';i++)
      *(s+i)=*(t+i);
}
搜索更多相关主题的帖子: 字符 
2010-09-06 23:05
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:5 
void strlink(char *s, char *t)
{
    int i=0;
    while(*s++ != '\0')
        ;
    for(s[-1] = *t++; t[-1] != '\0';s++,t++)
        *s = *t;
}

这样试试

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-09-06 23:15
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:5 
#include《string。h》
sou越界
2010-09-06 23:20
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:5 
#include <stdio.h>

void main()
{
  void strlink(char *s,char *t);  //将字符串t连接到字符串s的后面
//  char sou[]={"He is "};                //长度就是6
  char sou[20] = {"He is "};            //增加sou的长度就是了
  char des[]={"a boy!"};
  int m=strlen(sou);
  int n=strlen(des);
  int i;

  strlink(sou,des);
  for (i=0;i<=m+n;i++)
      printf("%c",*(sou+i));
  printf("\n");
}

void strlink(char *s,char *t)
{
  int i=0;
  while(*s++ != '\0')
     ;
  for(;*(t+i) != '\0';i++)
      *(s+i)=*(t+i);                        //这条语句在sou后面加字符,显然越界了。
}
2010-09-07 09:12
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:5 
程序代码:
#include<stdio.h>
#include<string.h>
void main()
{
    char str1[20],str2[10],*p,*q;
    p=str1,q=str2;
    printf("Please input str1:\n");
    gets(str1);
    printf("Please input str2:\n");
    gets(str2);
    for(p=str1;p<str1+strlen(str1);p++);

    for(q=str2;q<str2+strlen(str2);)
    *p++=*q++;
    *p='\0';
puts(str1);
    printf("\n");

}
    
这是我以前老师布置的题!这是我的代码!仅供参考
2010-09-07 09:17
雾雨淼淼
Rank: 2
来 自:甘肃金昌
等 级:论坛游民
帖 子:85
专家分:89
注 册:2010-8-17
收藏
得分:0 
回复 2楼 御坂美琴
学长,非常感谢你,我试了一下你给的方法,完全可以,不过我是初学者,不明白for(s[-1] = *t++; t[-1] != '\0';s++,t++)的意思,麻烦你能给我讲解一下吗?
2010-09-08 22:31
雾雨淼淼
Rank: 2
来 自:甘肃金昌
等 级:论坛游民
帖 子:85
专家分:89
注 册:2010-8-17
收藏
得分:0 
回复 5楼 遮天云
谢谢你,又让我学到了另一种方法
2010-09-08 22:32
雾雨淼淼
Rank: 2
来 自:甘肃金昌
等 级:论坛游民
帖 子:85
专家分:89
注 册:2010-8-17
收藏
得分:0 
回复 4楼 erikyo
我明白了,加在原来数组之后的元素一定要为它留出足够容纳它长度的存储空间,非常感谢,学到了很多
2010-09-08 22:34
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
void strlink(char *s, char *t)
{
    while(*s)
        s++;
    while(*s++=*t++)
        continue;
    //return *s;
}


[ 本帖最后由 cosdos 于 2010-9-9 00:57 编辑 ]

—>〉Sun〈<—
2010-09-09 00:56
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
回复 7楼 雾雨淼淼
不客气!回帖切磋是一种美德哦!这是论坛里的一句话
2010-09-09 07:32
快速回复:一个关于将字符串连接起来的问题
数据加载中...
 
   



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

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