题目
代码
#include <stdio.h>
int main()
{
char a[11][3]={"零","一","二","三","四","五","六","七","八","九","负"};
char b[50]={0};
char c[11]={'0','1','2','3','4','5','6','7','8','9','-'};
int i=0,j=0;
gets(b);
for(i=0;b[i]!='\0';i++)
{
for(j=0;j<11;j++)
{
if (b[i]==a[j][0]&&b[i+1]==a[j][1])
{
printf("%c",c[j]);
}
}
}
return 0;
}
tips
- 一个汉字占两个字节,属于字符串,用" "定义,放在二维数组中。
- char a[11][3]中的3为:汉字的两个字节+\0
其他解法
#include <stdio.h>
#include <string.h>
int main()
{
char a[11][3]={"零","一","二","三","四","五","六","七","八","九","负"};
char b[50]={0};
char str[3]={0};
char c[11]={'0','1','2','3','4','5','6','7','8','9','-'};
int i=0,j=0;
gets(b);
for(i=0;b[i]!='\0';i=i+2)
{
for(j=0;j<11;j++)
{
str[0]=b[i];
str[1]=b[i+1];
if(strcmp(str,a[j])==0)
printf("%c",c[j]);
}
}
return 0;
}
采用strcmp函数进行字符串比较