c语言中怎样将存放在字符数组中的汉字一个一个输出出来啊?而不是用%s全部输出。

如题所述

例题:
本题要求编写一个解密藏头诗的程序。

输入格式:
输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占两个字节。

输出格式:
取出每句的第一个汉字并连接在一起形成一个字符串并输出。
输入:
一叶轻舟向东流
帆稍轻握杨柳手
风纤碧波微起舞
顺水任从雅客流
输出:
一帆风顺

#include<stdio.h>
struct spf
{
char b[100];
};
int main()
{
struct spf a[4];
int i;
i=0;
for(i=0;i<4;i++)
{
scanf("%s",a[i].b);
}

for(i=0;i<4;i++)
{
printf("%c%c",a[i].b[0],a[i].b[1]);
}
return 0;

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
其中的精髓在于:printf("%c%c",a[i].b[0],a[i].b[1]);;
也就是说,要想一句话放进数组中,输入指定汉字,其实就是注意汉字占据两个字节,在字符数组中也是占据连续的两个字节,输出时选择储存汉字的地址就好。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-20
#include <stdio.h>
#include <windows.h> 
void main(){
int i;
char s[6][3]={"学","习","编","程","语","言"};
for(i=0;i<6;i++)
{
printf("%s",s[i]);
Sleep(1000);
}
}//

本回答被提问者和网友采纳
相似回答