有没有人可以帮我看看为什么打印的结果每一行旁边都会有“烫”的字,这个怎么解决啊
简单来说,你两个字符串的长度不相同,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'
题主出现上面问题的原因,是两个数组长度不等: