含汉字字符数组为什么输出会有乱码?

我已经知道汉字占两个字节了,但是连起来了为什么还是有乱码?求指导!

就是要从essay中找begin,然后进行配对,如果有相同的词,就找到后面的词,然后随机挑选一个进行输出。


#include<stdio.h>

#include <iostream>

#include<stdlib.h>

#include<string.h>

using namespace std;

char essay[10][200]={

"风和雨总是结伴而来的。早春的,带点儿寒气的风,吹醒了万物,树梢绿了,大地绿了,连高耸的楼房的平台也绿了。宋朝的王安石有诗云:“春风又绿江南岸。”说的多么好啊!但又何止是“绿”?",

"今年的节气自然是晚了一些,蝴蝶们还很弱;蝶儿可是一出世就那么挺拔。好像世界确是甜蜜可喜的。天上只有三四块不大也不笨重的白云,燕儿们给白云上钉小黑了子玩呢。",

"鸟们欢快地唱歌,欢迎美丽的春天。溪水哗哗地流淌,为鸟儿们歌唱春天伴奏;草地上的小花也笑着一晃一晃,给鸟儿们伴舞。这好像是一支歌舞团,正上演着山林中春天早晨的圆舞曲。",

"春姑娘是美丽的,勤劳的。春天更是美丽的,勤劳的,我喜欢春天!",

"春天的雨,是一把钥匙,它带着温暖和阳光,悄悄地,悄悄地,趁你没注意,把春天的大门打开了",

"你听,是微风的声音,花儿在聆听,草儿在聆听,展翅飞翔的燕子也在聆听,这美妙的“歌声”让它们陶醉,也让我陶醉;这时,微风拂过脸庞,让人感到了无限的春意。",

"万里晴空,阳光灿烂。春姑娘晒得都眯缝起眼睛来了。那嫩绿的新叶,那田野的薄雾轻烟,象她的衣衫。随着她春意的步伐,那青青的小草,破土而出,简直要顶着脚站出来啦。",

"我是一只出生在闹市里的鸟儿。虽然我们家不算很富有,但是,却有自由和清新的空气,而我又多么喜欢自由和清新的空气。我厌倦了城市的这种喧闹,今天,妈妈允许我到山林里一天。",

"春花的目的是秋实。春光的中希望是靠汗水的浇灌去抗击夏日的骄阳,用坚定的脚步去丈量秋实的距离",

"春天的雨是连绵的、柔和的,它滋润着大地,抚摸着大地,小声地呼唤着大地。 啊,原来是春雨给潭水带来绿色的生命。"

};

int same(char const a[],int h,int l,int m){

for(int j=0;j/2<m;j+=2){

if((a[j]<<a[j+1])!=(essay[h][j+l]<<essay[h][j+1+l]))

return 0;

}

return 1;

}

int main(){

int left=2,right=2,m=0,t;



char spring[20][2*right+1],begin[2*left+1]="春天",now[2*left+1];

for(int i=0;i<25;i++){

for(int j=0;j<10;j++){

int t = sizeof(essay[j])/(sizeof(essay[j][0])) ;

for(int k=0;k<t-right;k++){

if(same(begin,j,k,left))

for(int g=0;g<2*right;g++){

spring[m][g] = essay[j][g+i];}

}

}

cout << begin<< endl;

// cout << i <<endl;

for(int g=0;g<2*left;g++)

begin[g] = spring[m][g];

m = 0;

}

cout << begin;

return 0;

}