主题:串的链接,有时出来乱码,
#include "stdio.h"
#include "stdlib.h"
#define A 11
typedef struct std/* 定义串*/
{ char name[A];
int len;
}ss;
ss concat(ss s1,ss s2)/*串链接函数*/
{ ss s3;
int i;
if(s1.len+s2.len<=A)
{
for(i=0;i<s1.len;i++)
s3.name[i]=s1.name[i];
for(i=0;i<s2.len;i++)
s3.name[s1.len+i]=s2.name[i];
s3.len=s1.len+s2.len;
}
else
s3.len=0;
return s3;/*返回已经连接好的串了*/
}
main()
{
ss sd,sp,s2;
printf("kai shi qu zhi :\n");
gets(sd.name);/* 输入串1*/
gets(sp.name);/*输入串2*/
sd.len=strlen(sd.name);/* 获得串的长度*/
sp.len=strlen(sp.name);
printf("\n kai shi lia jie :\n");
s2=concat(sd,sp);/*输出串*/
puts(s2.name);
getch();
}
我的是个程序的意思是 ,会两个串,进行合并,然后赋给一个变量,然后输出这个变量 ,,现在问题来了我输入两个字符串后吧,有的时候输出的时候会有乱码产生,,难道是缓冲区没有清理,但是,我用flushall() 请里了。但是还是这样,,求救啊
#include "stdlib.h"
#define A 11
typedef struct std/* 定义串*/
{ char name[A];
int len;
}ss;
ss concat(ss s1,ss s2)/*串链接函数*/
{ ss s3;
int i;
if(s1.len+s2.len<=A)
{
for(i=0;i<s1.len;i++)
s3.name[i]=s1.name[i];
for(i=0;i<s2.len;i++)
s3.name[s1.len+i]=s2.name[i];
s3.len=s1.len+s2.len;
}
else
s3.len=0;
return s3;/*返回已经连接好的串了*/
}
main()
{
ss sd,sp,s2;
printf("kai shi qu zhi :\n");
gets(sd.name);/* 输入串1*/
gets(sp.name);/*输入串2*/
sd.len=strlen(sd.name);/* 获得串的长度*/
sp.len=strlen(sp.name);
printf("\n kai shi lia jie :\n");
s2=concat(sd,sp);/*输出串*/
puts(s2.name);
getch();
}
我的是个程序的意思是 ,会两个串,进行合并,然后赋给一个变量,然后输出这个变量 ,,现在问题来了我输入两个字符串后吧,有的时候输出的时候会有乱码产生,,难道是缓冲区没有清理,但是,我用flushall() 请里了。但是还是这样,,求救啊