c语言中怎样将存放在字符数组中的汉字一个一个输出出来啊?而不是用%s全部输出。
2个回答
展开全部
例题:
本题要求编写一个解密藏头诗的程序。
输入格式:
输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占两个字节。
输出格式:
取出每句的第一个汉字并连接在一起形成一个字符串并输出。
输入:
一叶轻舟向东流
帆稍轻握杨柳手
风纤碧波微起舞
顺水任从雅客流
输出:
一帆风顺
#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]);;
也就是说,要想一句话放进数组中,输入指定汉字,其实就是注意汉字占据两个字节,在字符数组中也是占据连续的两个字节,输出时选择储存汉字的地址就好。
本题要求编写一个解密藏头诗的程序。
输入格式:
输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占两个字节。
输出格式:
取出每句的第一个汉字并连接在一起形成一个字符串并输出。
输入:
一叶轻舟向东流
帆稍轻握杨柳手
风纤碧波微起舞
顺水任从雅客流
输出:
一帆风顺
#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]);;
也就是说,要想一句话放进数组中,输入指定汉字,其实就是注意汉字占据两个字节,在字符数组中也是占据连续的两个字节,输出时选择储存汉字的地址就好。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询