输入是一个只包含拼音的字符串,请输出对应的数字序列。转换关系如下:
描述:      拼音        yi  er  san  si  wu  liu  qi  ba  jiu
      阿拉伯数字        1   2   3      4   5    6    7   8   9
输入字符只包含小写字母,所有字符都可以正好匹配

运行时间限制:无限制
内存限制:       无限制
输入:              一行字符串,长度小于1000
输出:              一行字符(数字)串
样例输入:       yiersansi

样例输出:       1234

#include<iostream>
using namespace std;
char *p[9]={"yi","er","san","si","wu","liu","qi","ba","jiu"};
char *q[9]={"1","2","3","4","5","6","7","8","9"};
int main()
{   char *r=(char *)malloc(sizeof(char)*1000);cout<<"请输入一个只包含小写字母的字符串:"<<endl;gets(r);for(int i=0;i<1000;i++){switch(r[i]){case 'y':cout<<q[0];break;case 'e':cout<<q[1];break;case 's':if(r[i+1]=='a') cout<<q[2];else cout<<q[3];break;case 'w':cout<<q[4];break;case 'l':cout<<q[5];break;case 'q':cout<<q[6];break;case 'b':cout<<q[7];break;case 'j':cout<<q[8];break;default:break;}}system("pause");return 0;
}

参考一下别人的代码,发现需要改进的地方还不少,程序效率问题!!!

关于while(scanf("%d %d",&a,&b)!=EOF)
程序代码:
#include"stdio.h"
#include"stdlib.h"
int main()
{
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        printf("%d\n",a+b);
    }
    return 0;
    system("pause");
}

这里为什么while(scanf("%d %d",&a,&b)!=EOF)跟while(scanf("%d %d",&a,&b)==2)作用是一样?都是ctrl+z后结束.. EOF应该是-1吧 为什么后着也能跟前者一样正常运行?

因为scanf函数有返回值

程序代码:
#include<stdio.h>
int main()
{
    int i,j;
    printf("%d\n",scanf("%d%d",&i,&j));
    return 0;
}   
/*
scanf函数返回的是输入的数据的个数,什么都不输入代表-1
在scanf("%d %d",&a,&b)==2 中如果输入两个数字那么scanf函数会返回一个2
如果ctrl+Z 那么scanf函数返回-1
因为-1 != 2 所以循环终止
至于while(scanf("%d %d",&a,&b)!=EOF)为什么也有这个效果,原因是一样的
EOF = -1
输入两个数字 scanf返回结果2 输入ctrl+z 返回 -1
-1 == -1 循环终止
楼主将代码运行一下看看.
*/
#include<iostream>
#include<cstdio>
using namespace std;  void solve(char *str , int len)
{  int i;  for(i = 0 ; i < len ; )  {  switch(str[i])  {  case 'y':  putchar('1');  i += 2;  break;  case 'e':  putchar('2');  i += 2;  break;  case 's':  if(str[i + 1] == 'a')  {  putchar('3');  i += 3;  }  else  {  putchar('4');  i += 2;  }  break;  case 'w':  putchar('5');  i += 2;  break;  case 'l':  putchar('6');  i += 3;  break;  case 'q':  putchar('7');  i += 2;  break;  case 'b':  putchar('8');  i += 2;  break;  case 'j':  putchar('9');  i += 3;  break;  }  }  printf("\n");
}  int main(void)
{  int len;  char str[1000];  while(scanf("%s" , str) != EOF)  {  len = strlen(str);  solve(str , len);  }  return 0;
}  

输入是一个只包含拼音的字符串,请输出对应的数字序列。相关推荐

  1. java小编程----给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。

    package com.henu;import java.util.Arrays;/*** @author limengdong* @date 2019年7月19日* @classroom 208bi ...

  2. 平安科技:传入一个只包含1-9的数字字符串,输出的是包含所有数字的最小整数

    平安科技秋招笔试题: 传入一个只包含1-9的数字字符串,输出的是包含所有数字的最小整数.比如:输入"1992212",输出129. 实例: 输入 1992212 输出 129 思路 ...

  3. 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。

    给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135", ...

  4. puts遇到空格无法输出_输入一句英文,只包含字母和空格,如何输出这句英文中.....-黑马程序员技术交流社区...

    //输入一句英文,只包含字母和空格,如何输出这句英文中的最长单词?再把每个单词的首字母转换成大写! #include #include int main(int argc, const char * ...

  5. 字符串分隔 -连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。...

    •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输 ...

  6. •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

    •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 1. 首先从第二条规定,可以看出,需要用到字符串的添加,我们考虑用S ...

  7. python创建一个字典、关键字为只包含字母的字符串_探究Python源码,终于弄懂了字符串驻留技术...

    摘要:在本文中,我们将深入研究 Python 的内部实现,并了解 Python 如何使用一种名为字符串驻留(String Interning)的技术,实现解释器的高性能. 每种编程语言为了表现出色,并 ...

  8. 【算法-Java】给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。

    一.示例 示例 1: 输入:s = "25525511135" 输出:["255.255.11.135","255.255.111.35"] ...

  9. 31:第三章:开发通行证服务:14:开发【获得用户基本信息,接口】;(需要根据前端对返回数据的要求,创建一个只包含非隐私信息的AppUserVO类,去包装返回给前端的数据)

    说明: (1)本篇博客内容:开发[获得用户基本信息,接口]: 目录 零:本篇博客合理性说明:(或者说是:[获得用户基本信息,接口]是什么) 一:正式开发: 1.在[api]接口工程的UserContr ...

  10. 求一个只包含0、1的矩阵中只包含1的最大子矩阵大小

    题目描述: 给定一个无序矩阵,其中只有1和0两种值,求只含有1的最大正方形的大小. 例如给定如下矩阵: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 public c ...

最新文章

  1. php分页显示页数代码,php-Codeigniter分页显示结果数和页数
  2. JavaWeb学习笔记——DOM4J
  3. SQL 交集 差集 并集 笛卡尔积 应用实例
  4. 当前工程读取配置文件示例
  5. 全球及中国便携式卧式空压机行业前景动态与投资趋势分析报告2022版
  6. 【数据结构与算法】之深入解析“有效的数独”的求解思路与算法示例
  7. silverlight5
  8. cshtml中引用css_ASP.NET CoreMVC 中的控制器
  9. Kubernetes 1.20 版本开始将弃用 Docker,是时候拥抱 Containerd 和 Podman 了!
  10. python tcl smb_python操作samba
  11. 我的世界1.6.2 java_我的世界Java版1.16.2
  12. win11怎么添加小组件 window11添加小组件的设置方法
  13. BN=批归一化+缩放位移=(batchNorm层+scale层)
  14. windows系统下使用git出现:warning: LF will be replaced by CRLF in
  15. 主流的Web应用程序平台
  16. WIN10 无法保存游戏配置文件 每次进游戏都需要重新设置的问题解决方案
  17. 为什么双11快递一年比一年快?阿里新供应链架构解读
  18. 硬盘格式化后数据怎么恢复找回?试下这个!
  19. java注解(Annotation)-小羊的记录本(转)
  20. IAT HOOK、EAT HOOK和Inline Hook

热门文章

  1. 使用java,求100以内的质数(素数)
  2. plsql导出表结构到excel_PLSQL怎样导出oracle表结构和数据
  3. ORACLE的SQL练习---7. 拼接字符串
  4. 机器学习算法-十大常用算法
  5. 解决JSP中文乱码问题
  6. coji 编程机器人_WowWee编程机器人怎么样 WowWee编程机器人使用测评
  7. linuxcan接口测试
  8. Docker容器-cgroups资源配置
  9. 【考研】2021年哈尔滨工业大学计算机考研「复试」经验贴
  10. DSP实验报告—实验 4  编写一个汇编和 C 混合的 DSP 程序