请问如何在C语言中输入数字获得拼音?

请问如何在C语言中输入数字获得拼音?,第1张

char* inttochar(int a)

{

 switch (a)

 {

 case 0:

  return "ling"

  break

 case 1:

  return "yi"

  break

 case 2:

  return "er"

  break

 case 3:

  return "san"

  break

 case 4:

  return "si"

  break

 case 5:

  return "wu"

  break

 case 6:

  return "liu"

  break

 case 7:

  return "qi"

  break

 case 8:

  return "ba"

  break

 case 9:

  return "jiu"

  break

 }

}

int main()

{

 int i

 printf("请输入一个数字:-9999-9999\n")

 scanf("%d", &i)

 string ret = ""

 if (i < 0)

  ret = ret + "fu "

 i = -i

 int a = 0

 if (i >= 1000)

 {

  a = i / 1000

  ret = ret + inttochar(a) + " qian "

  i = i - 1000 * a

  a = i / 100

  if(a != 0)

   ret = ret + inttochar(a) + " bai "

  i = i - 100 * a

  a = i / 10

  if(a != 0)

   ret = ret + inttochar(a) + " shi "

  i = i - 10 * a

  a = i

  if(a != 0)

   ret = ret + inttochar(a)

 }

 else if (i < 1000 && i >= 100)

 {

  a = i / 100

  ret = ret + inttochar(a) + " bai "

  i = i - 100 * a

  a = i / 10

  if (a != 0)

   ret = ret + inttochar(a) + " shi "

  i = i - 10 * a

  a = i

  if (a != 0)

   ret = ret + inttochar(a)

 }

 else if (i < 100 && i >= 10)

 {

  a = i / 10

  if (a != 0)

   ret = ret + inttochar(a) + " shi "

  i = i - 10 * a

  a = i

  if (a != 0)

   ret = ret + inttochar(a)

 }

 else if (i < 10 && i >= 0)

 {

  ret = ret + inttochar(i)

 }

 printf(ret.c_str())

    return 0

}

尼玛哔了狗了,这破玩意写起来真费事

//这段程序错误太多,而且代码风格太乱;

//不过估计您是个初学者,就帮你的程序按你思路修改

//运行结果如下:

模仿拼音输入法

请输入拼音wo

wo

0.挝 1.莴 2.涡 3.窝 4.蜗 5.倭 6.踒 7.喔 8.我 9.肟 10.沃 11.卧 12.偓 13.握 14.幄

15.渥 16.龌 17.涴 18.硪 19.斡 请输入对应的序号选字:2

//修改后程序如下,希望对你有用!

#include<stdio.h>

#include<string.h>

int main() //是int还是void,根据编译器,我用的是CodeBlocks需要用int

{

char wo[]= {"wo"}

char wo_ch[]= {"挝莴涡窝蜗倭踒喔我肟沃卧偓握幄渥龌涴硪斡"}

printf("%d:%s\n", strlen(wo_ch), wo_ch)

//char str_input[3]

unsigned int i=0,str_ch_len=strlen(wo_ch)

printf("模仿拼音输入法\n")

printf("请输入拼音wo\n")

//scanf("%s",str_input)

char str_input[3]

gets(str_input)//输入拼音

//if(str_input==wo)//修改如下(字符串是不能直接比较的!)

if (0==strcmp(str_input,wo))

{

for(i=0 i<str_ch_len i+=2)

//printf("%d.%c "i,wo_ch[i]) //修改如下(双引号之后应该有,号)

printf("%d.%c%c ",i/2,wo_ch[i],wo_ch[i+1])

last:

printf("请输入对应的序号选字:")

//scanf("%d" &i) //修改如下

unsigned int n

scanf("%u", &n)

if (2*n>str_ch_len)

{

printf("你要选的字符不存在\n")

goto last

}

else

{

printf("%c%c",wo_ch[2*n],wo_ch[2*n+1])

}

}

else

{

printf("对不起,没有找到该拼音的字库\n")

}

return 0//如果主函数是void,删除此行!

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11612865.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存