首页 > 其他分享 >C语言 九宫格输入法

C语言 九宫格输入法

时间:2024-11-28 12:58:22浏览次数:8  
标签:输入法 ch cnt% 九宫格 cnt C语言 break flag printf

假设有九宫格输入法键盘布局如下:

 [ 1,.?! ] [ 2ABC ] [ 3DEF  ]
 [ 4GHI  ] [ 5JKL ] [ 6MNO  ]
 [ 7PQRS ] [ 8TUV ] [ 9WXYZ ]
           [ 0空  ]

注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,则输入的字符依次循环轮流,例如按两次3,则输入D;按5次7,则输入S;按6次2,则输入A。按键0的输入组合是0空格字符,即按两次0输入空格。

你需要对于给定的按键组合,给出该组合对应的文本。

输入格式:

输入在一行中给出数个字符的按键组合(例如 999 表示按3次9),每个字符的按键组合之间用空格间隔,最后一个输入法组合之后以换行结束。输入数据至少包括一个字符的按键组合,且输入总长度不超过500个字符。

输出格式:

在一行中输出该按键组合对应的文本。

输入样例:

22 5555 22 666 00 88 888 7777 4444 666 44

输出样例:

ALAN TURING
#include <stdio.h>
#include <string.h>
int main (void){
	char str[1000];
	gets(str);
	int flag=0;
	int cnt=0;
	char ch[10][10]={"0 ","1,.?!","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ"};
	int i=0;
	int len=strlen(str);
	str[len+1]='\0';
	str[len]=' ';
	while(str[i]!='\0'){
		cnt=0;
		flag=0;
		while(str[i]!=' '){
			cnt++;
			flag=str[i]-'0';
			i++;
		}
		cnt--;
		switch(flag){
			case 0:cnt%=2;printf("%c",ch[flag][cnt]);break;
			case 1:cnt%=5;printf("%c",ch[flag][cnt]);break;
			case 2:cnt%=4;printf("%c",ch[flag][cnt]);break;
			case 3:cnt%=4;printf("%c",ch[flag][cnt]);break;
			case 4:cnt%=4;printf("%c",ch[flag][cnt]);break;
			case 5:cnt%=4;printf("%c",ch[flag][cnt]);break;
			case 6:cnt%=4;printf("%c",ch[flag][cnt]);break;
			case 7:cnt%=5;printf("%c",ch[flag][cnt]);break;
			case 8:cnt%=4;printf("%c",ch[flag][cnt]);break;
			case 9:cnt%=5;printf("%c",ch[flag][cnt]);break;
		}
	    i++;
	}
	
	return 0;
}

 

标签:输入法,ch,cnt%,九宫格,cnt,C语言,break,flag,printf
From: https://blog.csdn.net/Communist19/article/details/144106596

相关文章

  • VScode配置C语言环境
    第一步下载VScode:VisualStudioCode-CodeEditing.Redefined第二步搜索下载VScode插件:​ C/C++Chinese上面两个插件安装完成后会提示重启VScode完成中文语言设置第三步配置C语言编译器:https://wwgn.lanzoul.com/iB4US2gj0ayh密码:8y95下载完成后解压,这里我选择保存......
  • C语言笔记——数组
    一维数组C语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。C中的数组1、数组的定义格......
  • C语言笔记--选择和循环语句
    分支语句ifswitch循环语句whilefordowhilegoto语句什么是语句C语句可分为以下五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。可......
  • [C语言]使用联合体和结构体 巧妙处理寄存器数据上位机读写的方法
    最近有在研究陀螺仪,里面就有对不同寄存器做配置,然后在读取一定地址的寄存器数据;发现这种逻辑工程上经常有;但是我接触到的代码基本都是通过一大堆宏定义去给他们寄存器地址命名,然后再自己读手册去搞配置;其实在性能上这个操作挺好的,但是我们似乎也没那么在意这几十个字......
  • C语言(运算符及位运算)
    运算符算术运算符基本的算术运算符+、-:正负值运算符(单目运算符)。+、-、*、/、%:加减乘除取余运算符(双目运算符)注意:进行除法运算的时候,除数是不能为0的。这些算术运算符的运算顺序与数学上的运算顺序相同。表达式和运算符的优先级与结合性算术表达式:是指用算术运算符......
  • C语言(流程控制)
    算法著名计算机科学家沃思提出了一个公式:数据结构+算法=程序数据结构:对数据的描述算法:对操作步骤的描述算法定义广义的说,未解决一个问题而采取的方法和有限的步骤,就称为“算法”例如:将⼤象放⼊冰箱的算法就可以如下描述:打开冰箱⻔-把⼤象装进去-关闭冰箱⻔算......
  • C语言 -运算符
    运算符各类数值型数据间的混合运算整型、实型、字符型数据间可以进行混合运算运算时,参加运算的两个数据如果类型不同,则首先将其类型转换成一致再运算,转换规则是:将优先级低的类型转换到优先级高的类型,被称作自动类型转换(小转大——不会损失数据)。大类型类型变量名=......
  • 初识c语言+getchar()和putchar()相关知识
    编译和链接C语言是一门编译型计算机语言,源代码都是文本文件,本身无法执行,必须通过编译器的编译和链接器的链接生成二进制的可执行文件才能执行。一个工程一般多个源文件组成。1.每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj为后缀的文件)。2.多个目标文件和库......
  • C语言学习笔记-4
    四、控制语句1.选择控制语句1、if语句1)if(){语句1;语句2;}如果条件成立执行大括号里的所有语句,不成立的话大括号里的语句不执行2)if(条件表达式){}else{}如果if的条件成立,执行if后面{}内的语句,否则执行else后的语句3)if(条件表达式1)......
  • C语言——指针初阶(一)
    目录一.什么是指针???     指针是什么?        指针变量:        总结:        总结:二.指针和指针类型指针+-整数:        总结:指针的解引用总结:三.野指针如何规避野指针往期回顾:一.什么是指针???     指针是什么? ......