c语言-输入一个错位敲出的字符串,输出打字员本来想打出的句子

问题描述

输入一个错位敲出的字符串,输出打字员本来想打出的句子
#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;
}

for循环里的s[i] && s[i] != c该如何理解呢?

解决方案

另外你的换行、缩进以及while循环中把判断和赋值写在一起,这些都要注意。

解决方案二:
输入一个字符串,打印出其中所有的数字

解决方案三:

 s[i] && s[i] != c其实是s[i] != '' && s[i] != c这种程序写法不值得你学习模仿。

解决方案四:
在C里,''表示字符串结束
这里用while循环更好
推荐这么写

原写法
for(i = 1; s[i] && s[i] != c; i ++);
应该写

 i = 1;while (s[i] != ''){    if (s[i] == c)            break;    i++;}

写程序绝对不是卖弄技巧和越短越好。

解决方案五:

        for(i=1;s[i]!='';i++){            if(s[i]==c) break;        }

这个程序就是每次输入一字符,然后在指定的字符串内找到这个字符的位置,然后输出这个这个字符的前面的 字符
所以相输出123456789 QWERTYUIOP[]ASDFGHJKL ZXCVBNM
可以在键盘先后输入:
234567890- 回车
WERTYUIOP[ -回车
SDFGHJKL;回车
XCVBNM回车

解决方案六:

        for(i=1;s[i]!='';i++){            if(s[i]==c) break;        }

这个程序就是每次输入一字符,然后在指定的字符串内找到这个字符的位置,然后输出这个这个字符的前面的 字符
所以相输出123456789 QWERTYUIOP[]ASDFGHJKL ZXCVBNM
可以在键盘先后输入:
234567890- 回车
WERTYUIOP[ -回车
SDFGHJKL;回车
XCVBNM回车

时间: 2024-12-01 23:03:44

c语言-输入一个错位敲出的字符串,输出打字员本来想打出的句子的相关文章

c语言-问题:输入一个错位后的字符串,输出打字员本来想打出的句子。(将输入的字母在键盘上左移一位)

问题描述 问题:输入一个错位后的字符串,输出打字员本来想打出的句子.(将输入的字母在键盘上左移一位) #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 -

Viusla Basic 6..0 语言编写一个函数,把uncode字符串转换为utf-8字符串

问题描述 Viusla Basic 6..0 语言编写一个函数,把uncode字符串转换为utf-8字符串 Viusla Basic 6..0 语言编写一个函数,把uncode字符串转换为utf-8字符串 解决方案 dim e as object Set?e=CreateObject("MSScriptControl.ScriptControl") e.Language?=?"javascript" dim d as stringd=?e.Eval("en

c语言-C语言中如何让几百个字符串输出的时候排列整齐,像表格一样?

问题描述 C语言中如何让几百个字符串输出的时候排列整齐,像表格一样? 解决方案 你说的是右边对齐?还是说每个字符上下对齐? 解决方案二: 得到这些文本中最长的一行的字符数,然后每一行根据计算平均把差的字符分摊到空格中

c语言-输入一个十进制整数,依次转换成2到16进制数

问题描述 输入一个十进制整数,依次转换成2到16进制数 求大神帮帮忙做一下 我刚刚学C语言 程序代码 弄了好久都没弄出来 大神帮忙编一个程序代码 ,谢谢了 解决方案 #include <iostream> using namespace std; char metachar[] = "0123456789abcdef"; void tobasen(int x, int n) { if (x > 0) { tobasen(x / n, n); cout <<

中文字符-如何用C语言编写一个简单的输入法程序,要求可以输入汉字。

问题描述 如何用C语言编写一个简单的输入法程序,要求可以输入汉字. 不太清楚汉字在计算机中是如何存储的,想知道例如微软的智能ABC以及搜狗输入法是怎样实现拼音拼写下的汉字输入. 解决方案 首先要有一个汉字的编码库,比如GB2312编写的是拼音输入法的话,还要建立一个拼音与汉字对应的数据库然后根据用户输入的拼音,提示出对应的汉字(汉字的优先顺序由数据库决定,同时还可以学习该用户的使用习惯)如果输入法还支持智能联想输入的话,还要加入词库(也有优先级),这样可以根据前一个字来推断出下一个可能的字 解决

c语言-请问各位大师,C语言中如何实现数学中的:输入一个自然对数e,得到的结果是1???

问题描述 请问各位大师,C语言中如何实现数学中的:输入一个自然对数e,得到的结果是1??? [ 问题出在哪?是double x;吗???(如何解决?) 解决方案 sacanf不能识别expf(1),你输入它等于输入0 你需要输入2.71828 #include <stdio.h> #include <math.h> int main() { double i; scanf_s("%lf", &i); double x = logf(i); printf(

c语言 设计一个找出同数值部分排列的程序

问题描述 c语言 设计一个找出同数值部分排列的程序 定义一行的整数的输入有相同连续的地方为"同数值部分排列"找出有最长的同数值部分排列,并输出排列长度及这个数字的程序.最长的同数值部分排列有两个以上的时候,输出最后那个.输入的数字用空格或者换行区别 例1输入:0 1 1 1 2 0 0输出:3 1 例2输入:1 1 1 31 2 223输出:3 2 解决方案 #include <stdio.h>int main(){ int x; int c = 0; int px = -

url-怎么在输入一个URL时弹出一个登陆对话框

问题描述 怎么在输入一个URL时弹出一个登陆对话框 在服务器那边怎么做,用什么语言,怎么做才能实现这样的功能啊,求大神指教 解决方案 你说的网页中弹出对话框,这个一般是js去实现的.比如这个http://www.cnblogs.com/cmsdn/archive/2012/06/07/2538596.html 解决方案二: JavaScript有类似功能 解决方案三: 找artdialog这个弹出层插件 解决方案四: js就可以实现了. Js开发:http://www.leixuesong.cn

输入一个字符串并打印出该字符串中字符的所有排列

题目: 输入一个字符串, 打印出该字符串中字符的所有排列. 方法: 使用递归依次交换位置, 打印输出. 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> void Permutation(char* str, char* begin); void Permutation(char* str){ if(str == NULL) r