有没有人可以帮我看看为什么打印的结果每一行旁边都会有“烫”的字,这个怎么解决啊

img
有没有人可以帮我看看为什么打印的结果每一行旁边都会有“烫”的字,这个怎么解决啊

简单来说,你两个字符串的长度不相同,arr1多了1个'!',修改后:


#include <stdio.h>
#include <string.h>

int main(void)
{
    char arr1[] = "welcome";
    char arr2[] = "#######";

    int left = 0;
    int right = strlen(arr1) - 1;

    while (left <= right)
    {
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];

        puts(arr2);

        ++left;
        --right;
    }
    return 0;
}

ascii码越英文界了

求采纳


#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s1="welcome";
    string s2="#######";
    int left=0;
    int len,right=s1.length()-1;
    len=right;
    while(left<=right)
    {
        for(int i=0;i<=len;i++)
        {
            if(i>=left&&i<=right)
            {
                cout<<s2[i];
            }
            else cout<<s1[i];
        }
        cout<<endl;
        left++;
        right--;
    }
}

printf('%s',arr2)是读到'\0'为止的,所以要先加上arr2[right+1]='\0'

题主出现上面问题的原因,是两个数组长度不等:
img