设计一个函数,吧两个字符串连接起来生成新字符串返回,函数原型如下
void fun(cha* s,char* t,char* str)
主函数里输入输出字符串
void main()
{
char s1[N],s2[N],s3[N];
printf("输入1字符串");
gets(s1);
printf("输入2字符串");
gets(s2);
fun(s1,s2,s3);
printf("%s\n",s3);
}
我写了一个,但是有时候输出乱码,帮我看看问题出在哪儿了
void fun(char*s,char*t,char*str)
{
int i,j;
for(i=0;*(s+i)!='\0';i++)
{
*(str+i)=*(s+i);
}//
for(j=0;*(t+j)!='\0';j++)
{
*(str+i+j)=*(t+j);
if(*(str+i+j)!='\0')
{
continue;
}
}
}
void fun(char*s,char*t,char*str)
{
int i,j;
for(i=0;*(s+i)!='\0';i++)
*(str+i)=*(s+i);
for(j=0;*(t+j)!='\0';j++)
*(str+i+j)=*(t+j);
*(str+i+j)='/0';
}
修改了一下,没有调试,你自己看看有什么问题没有
使用*(str+i+j)='/0';完美通过,另外解释一下
请问用if语句该怎么写这条语句,我试了几种都出现乱码
抱歉那一句:*(str+i+j)='/0';里面打错了,是'\0'。你的问题是什么意思?为什么要用if语句呢?
追问第二个for循环*(str+i+j)='\0'这个我没弄明白,执行完赋值后判断截止?
问题是不用这个链接函数的前提
追答那你就用数组一个一个移过去呗