![]() |
#2
lemonandtree2017-11-24 21:29
|

#include<iostream>
using namespace std;
int lenstr(char str[20])
{
int i=0;
int sum=0;
while(str[i]!='\0')
{
sum++;
i++;
}
return sum+1;
}
void catstr( char str1[20],char str2[20])
{
int t,i=0,j=0;
t=lenstr(str1);
char str3[20];
while(str1[i]!='\0')
{
str3[i]=str1[i];
i++;
}
str3[i]='\0';
i=0;
while(str2[i]!='\0')
{
str3[t-1]=str2[i];
i++;
t++;
}
str3[t]='\0';
printf("%s",str3);
cout<<lenstr(str3);
}
void main()
{
char str1[20] ;
char str2[20];int t;
scanf("%s",str1);
scanf("%s",str2);
catstr(str1,str2);
}
,我想用这个程序把一个字符串连接到另一个字符串后面,然后输出原字符串和(连接在一起的字符串),并且计算和输出(连接在一起的字符串)的长度。可是cout<<lenstr(str3);没这句的时候可以输出(连接在一起的字符串),但加上这句不但输出的长度是错的,连输出的字符串也有问题。using namespace std;
int lenstr(char str[20])
{
int i=0;
int sum=0;
while(str[i]!='\0')
{
sum++;
i++;
}
return sum+1;
}
void catstr( char str1[20],char str2[20])
{
int t,i=0,j=0;
t=lenstr(str1);
char str3[20];
while(str1[i]!='\0')
{
str3[i]=str1[i];
i++;
}
str3[i]='\0';
i=0;
while(str2[i]!='\0')
{
str3[t-1]=str2[i];
i++;
t++;
}
str3[t]='\0';
printf("%s",str3);
cout<<lenstr(str3);
}
void main()
{
char str1[20] ;
char str2[20];int t;
scanf("%s",str1);
scanf("%s",str2);
catstr(str1,str2);
}