#include
#include
#include
#include
int main()
{
char arr1[] = "世界灿烂盛大,欢迎回家!";
char arr2[] = " ";
int left = 0;
int right = strlen(arr1) - 1;
while(left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(1000);
left++;
right--;
}
printf("%s\n",arr1);
return 0;
}
一个中文占两个字节, 比如 世 ,就是 arr1[0] 和 arr1[1] 组合成的,所以 输出一半,有奇怪的字符也很正常
一个汉字占两个字节,要实现效果,这么改:
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<stdlib.h>
int main()
{
char arr1[] = "世界灿烂盛大,欢迎回家!";
char arr2[32] = " "; //修改
int left = 0;
int right = strlen(arr1) - 1;
arr2[right+1] = '\0'; //修改
while(left <= right)
{
arr2[left] = arr1[left];
left++; //修改
arr2[left] = arr1[left]; //修改
left++; //修改
arr2[right] = arr1[right];
right--; //修改
arr2[right] = arr1[right];//修改
right--; //修改
printf("%s\n", arr2);
Sleep(500);
}
printf("%s\n",arr1);
return 0;
}