永发信息网

C语言问题 wertyu

答案:4  悬赏:50  手机版
解决时间 2021-02-03 04:35
问题:输入一个错位后的字符串,输出打字员本来想打出的句子。(将输入的字母在键盘上左移一位)
如输入 o s, gomr ypfsu 输出i am fine today
#include
char *s="1234567890-=qwertyuiop[]asdfghjkl;'\\zxcvbnm,./";
int main()
{
int i,c;
while((c=getchar())!=EOF)
{
for(i=1;s[i]&&s[i]!=c;i++);
if(s[i])putchar(s[i-1]);
else putchar(c);
}
return 0;
}
第二行定义的是什么?还有下面是什么意思?解释。
最佳答案
char *s="1234567890-=qwertyuiop[]asdfghjkl;'\\zxcvbnm,./";
//定义的一个字符型指针,只想一对字符,当然现在还看不懂,因为要将输入的字母在键盘上左移一位才能看到正确结果
#include
char *s="1234567890-=qwertyuiop[]asdfghjkl;'\\zxcvbnm,./";
int main()
{
int i,c;
while((c=getchar())!=EOF)//从键盘输入一个字符,直到输入回车结束
{
for(i=1;s[i]&&s[i]!=c;i++);//判断s[i]&&s[i]!=c是否相等,如果相等结束,不然i就一直自加
if(s[i])putchar(s[i-1]);//如果if(s[i])为真就输出s[i-1]
else putchar(c);//否则就打印接收的c字符
}
return 0;//返回给系统一个参数
}
-物联网校企联盟技术部
全部回答
第二行定义了一个字符数组指针 下面的意思无法就是数组向右偏移一个元素而已
for(i=1;s[i]&&s[i]!=c;i++); 这个for循环是在s中查找给定字符c的位置i。 s[i]!=c是判断给定字符c是否存在,s[i]是判断字符串s是否结束,相当于s[i]!='\0',当s[i]为字符串结束标志时,s[i]即为false。 if(s[i])putchar(s[i-1]); else putchar(c); 当s[i]不为字符串结束标志时(即c在s中)输出s[i-1],否则(即c不在s中)输出c。 说明:c在s中的说法不太严格,如“1”在s中,但是循环是从s[1]开始检测,所以“1”也相当于不在s中。
char *s="1234567890-=qwertyuiop[]asdfghjkl;'\\zxcvbnm,./"; 这行定义的就是键盘上从数字键1开始的符号,看看你的键盘与这个字符串是对应的; 循环从第2个字符开始找,看是否与你输入的字符相等,一直找到上面定义的字符串结束或字符相等,这个条件就可以写成(s[i]!=0)&&(s[i]!=c)也可以写成(s[i]&&s[i]!=c); 下面判断当前找到的若不是字符串结尾则输出左边字符,否则(上边字符串中不包含的字符)输出字符c。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
CIF价格条件的卖方不负责投保( )。A.一切险
大商创新手机超市地址有知道的么?有点事想过
越石父的意思是什么啊?知道的请说下!
实习心德体会 眼科30字内
2017年什么时间发农田补贴
手机上给自己的照片加字怎么弄
五菱之光465发动机5万公里,需要调气门间隙吗
中国联通(孟家溪镇)地址有知道的么?有点事想
帅运网吧我想知道这个在什么地方
敷展的意思是什么啊?知道的请说下!
甲、乙两人从相距14千米的地点,分别以2.8千米
中国联通(富迪藕池购物广场对面)地址在什么地
靳大粮行在什么地方啊,我要过去处理事情
一个男生很会调情。和女生说话很暧昧,其实他
相佑的意思是什么啊?知道的请说下!
推荐资讯
非常感谢您的理解和支持!还有机会参与.下次
大宁县工会地址有知道的么?有点事想过去
朋志干杂店在什么地方啊,我要过去处理事情
得罪师傅了怎么办?
常山县公安局球川派出所这个地址在什么地方,
港中旅(佛山)国际旅行社有限公司地址有知道的
FC时尚造型在什么地方啊,我要过去处理事情
世界之窗站J口在什么地方啊,我要过去处理事
"伤心"用希腊语言怎么说
焠轮的意思是什么啊?知道的请说下!
css 请看下 怎么让文本放不下的情况 自动换行
小未庄村地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?