| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 554 人关注过本帖
标题:请教个字符串复制的问题
取消只看楼主 加入收藏
lyanoa
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-7-16
结帖率:100%
收藏
已结贴  问题点数:40 回复次数:2 
请教个字符串复制的问题
就是把字符串2的n个字符复制到字符串1的后面,如果字符串2的字符数不够n个就在字符串后面补空格。下面是我搞的代码,请大家帮我看看,谢谢!
#include<stdio.h>
#include<ctype.h>
#define SIZE 40
char *copy(char *,char *,int);
int main()
{
   char arr1[2*SIZE+1],arr2[SIZE];
   char *t1=arr1;
   char *t2=arr2;
   int n;
   puts("...");
   while(gets(t1)!='\0'&&gets(t2)!='\0'&&(scanf("%d",&n)==1))
   {
       copy(t1,t2,n);
       puts(t1);
       puts("next?");
       while(getchar()!='\n')
        break;
   }
   return 0;
}
char *copy(char *s,char *ss,int n)
{
     int i=0,j;
     if(strlen(ss)>=n)
      ss[n]='\0';
     else
        for(j=strlen(ss);j<n;j++)
           ss[j]=' ';
        ss[j]='\0';
        while(i<n)
        {
            s[strlen(s)+i]=ss[i];
              i++;
         }
         s[strlen(s)]='\0';
         return s;
}
我试过把2个字符串先赋值,基本上可以实现,就是会多复制第二个字符串的第一个字符,比如 字符串是abcd 字符串2是 ab,最后会搞成abcdaab,不知道为什么
然后我把字符串放到while 里面赋值,问题就更大了,经常只复制第一个字符,或者就是一堆乱码,很无奈。我也试过再加个指针变量,char *t3,t3=copy(...)好像也不行,请大家帮我看下,谢谢了!
搜索更多相关主题的帖子: 字符 
2009-08-01 17:43
lyanoa
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-7-16
收藏
得分:0 
我是新手,这是道习题,可能对大家来说问题太幼稚了,不过我真是想了很久,也自己找过这个库函数的定义,不过网上的朋友说库函数的定义是用汇编写的,我也看不懂,所以还是麻烦热心人指点下,谢谢了
2009-08-04 01:56
lyanoa
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-7-16
收藏
得分:0 
while(i<n)
        {
            s[strlen(s)+i]=ss[i];
              i++;
         }
         s[strlen(s)]='\0';
         return s;
问题就出在这,每次循环都会算一次长度,谢谢了,我回去好好看下3楼的,太简洁了
2009-08-04 16:02
快速回复:请教个字符串复制的问题
数据加载中...
 
   



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

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