C语言字符串连接问题 20
2个回答
展开全部
可以使用系统提供的函数strcat,若要自己实现的话思路如下: 1.获得两个字符串的长度,相加,开辟一个长度为前面两个字符串长度和的数组; 2.将两个字符串中的值依次赋值到新的字符串中。
追问
我的问题不是这个
我的问题是str1和str2连接后超出str1范围,为什么还能正常输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-04-09 · 知道合伙人互联网行家
关注
展开全部
Please input str1:123
Please input str2:456
123456
Press any key to continue
#include <stdio.h>
char*mystrcat(char*str1,char*str2);
void main()
{
char str1[50];
char str2[50];
char *str;
printf("Please input str1:");
gets(str1);
printf("Please input str2:");
gets(str2);
str=mystrcat(str1,str2);
puts(str);
}
char *mystrcat(char*str1,char*str2)
{
char*str=str1;
while (*str) //把*str移动到str1的最后
*str++;
while(*str2) //然后再往后面续上str2
*str++=*str2++; //否则str2 就把str1内容给覆盖了
*str='\0';
return str1;
}
Please input str2:456
123456
Press any key to continue
#include <stdio.h>
char*mystrcat(char*str1,char*str2);
void main()
{
char str1[50];
char str2[50];
char *str;
printf("Please input str1:");
gets(str1);
printf("Please input str2:");
gets(str2);
str=mystrcat(str1,str2);
puts(str);
}
char *mystrcat(char*str1,char*str2)
{
char*str=str1;
while (*str) //把*str移动到str1的最后
*str++;
while(*str2) //然后再往后面续上str2
*str++=*str2++; //否则str2 就把str1内容给覆盖了
*str='\0';
return str1;
}
追问
我的问题是str1和str2连接后超出str1范围,为什么还能正常输出
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询