请教个字符串复制的问题
就是把字符串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(...)好像也不行,请大家帮我看下,谢谢了!