注册 登录
编程论坛 C++教室

为什么这样不能正常计算str3的长度。

lemonandtree 发布于 2017-11-24 20:10, 1340 次点击
程序代码:
#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);没这句的时候可以输出(连接在一起的字符串),但加上这句不但输出的长度是错的,连输出的字符串也有问题。
3 回复
#2
lemonandtree2017-11-24 21:29
只有本站会员才能查看附件,请 登录
#3
rjsp2017-11-24 23:12
str3[t]='\0' 改为 str3[t-1]='\0' 试试
手机上回复的,不对再继续
#4
lemonandtree2017-11-25 08:47
真的是这样,我找了一晚上都没发现,真是太感谢您 了!
1