用指针实现两个字符连接,并将链接后的字符输出
#include<stdio.h>
#include<string.h>
void fun(char *p,char *s,char *c)
{int i,j,k,n;
j=strlen(p);
k=strlen(s);
for(i=0;i<=j;i++)
{
c[i]=p[i];
}
c[j+1]=0;
for(n=0;n<=k;n++)
{
c[j+1+n]=s[n];
}
}
int main()
{
char a[40];
char b[40];
char pr[80];
gets(a);
gets(b);
fun(pr);
puts(pr);
return 0;
}
这串代码有啥问题
修改处见注释,供参考:
#include<stdio.h>
#include<string.h>
void fun(char *p,char *s,char *c)
{
int i,j,k,n;
j=strlen(p);
k=strlen(s);
for(i=0;i<j;i++) //for(i=0;i<=j;i++)
{
c[i]=p[i];
}
//c[j+1]=0;
for(n=0;n<k;n++)//for(n=0;n<=k;n++)
{
c[i+n]=s[n]; // c[j+1+n]=s[n];
}
c[i+n]='\0';
}
int main()
{
char a[40];
char b[40];
char pr[80];
gets(a);
gets(b);
fun(a,b,pr); //fun(pr);
puts(pr);
return 0;
}