求教各位达人,这奇怪的结果怎么来的,如何改正得到正确的字符串连接?
我自己写的一字符串连接函数LJ,
#include<stdio.h>
#include<iostream.h>
#include<string.h>
void LJ(char str1[],char str2[])
{static char str3[1]="";
int i;
for(i=0;i<int(strlen(str1));i++)
str3[i]=str1[i];
for(i=int(strlen(str1));i<int(strlen(str1))+int(strlen(str2));i++)
str3[i]=str2[i];
cout<<str3<<endl;
}
void main()
{
char str1[34],str2[43],str4[100];
cin>>str1>>str2;
LJ(str1,str2);
}
在运行时输入made in china后按回车,输出如下奇怪结果:
made in china enter
made烫
press any key to continue
[解决办法]
void LJ(char str1[], char str2[]) { static char str3[128] = ""; int i; for (i = 0; i < int(strlen(str1)); i++) str3[i] = str1[i]; for (i = int(strlen(str1)); i < int(strlen(str1)) + int(strlen(str2)); i++) str3[i] = str2[i - int(strlen(str1))]; cout<<str3<<endl; } void main() { char str1[34],str2[43],str4[100]; cin>>str1>>str2; LJ(str1,str2); }