首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >尝试创建一个猜测我的字母代码。如何合并来自用户的输入字符等于我的字母的情况?

尝试创建一个猜测我的字母代码。如何合并来自用户的输入字符等于我的字母的情况?
EN

Stack Overflow用户
提问于 2019-04-16 20:30:33
回答 2查看 42关注 0票数 0

我正在尝试创建一个程序,将用户输入的字母与我的字母进行比较。如果字母相同,程序应该说它们是相同的,然后终止。如果它们不相同,则应该提示用户输入另一个字符,直到他们猜对为止。

我尝试过嵌套一个if语句和一个while循环来实现字母相等的情况。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main()
{

    char myLetter = 'a';

    printf("insert a char:");

    char userLetter;

    scanf("%1s", &userLetter);

    while (userLetter !=  myLetter)
    {
        printf("%c does not match mine, try again:", userLetter);

        scanf("%1s", &userLetter);
    }

    while (userLetter == myLetter)
    {
        printf("char matches! program will terminate now. ");

        break;
    }
}

期望值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert a char:h
h does not match mine, try again:j
j does not match mine, try again:g
g does not match mine, try again:f
f does not match mine, try again:a
char matches! program will terminate now.

实际:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert a char:h
h does not match mine, try again:j
j does not match mine, try again:g
g does not match mine, try again:f
f does not match mine, try again:a
a does not match mine, try again:a does not match mine, try again:^C
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-16 21:17:00

读取单个字符的正确格式操作符是%c,而不是%1s。后者读取单个字符,但将其写入以null结尾的字符串,因此它将在userLetter变量外部写入一个null字节,这会导致未定义的行为。

您应该在运算符之前放置一个空格,以便scanf在读取字符之前跳过空格。这是为了让它在每次响应后忽略换行符。

您还应该关闭输出缓冲或在每次提示后刷新缓冲区,因为它们不会以换行符结束。

不需要在最后执行while循环,因为直到字符匹配时才能退出第一个循环。

这是一个工作版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>

int main()
{

    char myLetter = 'a';

    setbuf(stdout, NULL);
    printf("insert a char:");

    char userLetter;
    scanf(" %c", &userLetter);

    while (userLetter !=  myLetter)
    {
        printf("%c does not match mine, try again:", userLetter);
        scanf(" %c", &userLetter);
    }

    printf("char matches! program will terminate now.\n");
}
票数 2
EN

Stack Overflow用户

发布于 2019-04-16 21:22:39

如果你正在比较2个字符,为什么你不用scanf("%c", userLetter)得到用户字母,然后你可以用=!=运算符来比较它们。如果你希望得到一个字符串值的输入,那么我建议你这样声明userLetter

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
char* userLetter[1];

然后使用scanf,就像你在代码中做的那样,但是你必须用strcmp函数比较字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55716162

复制
相关文章
C-统计输入字符中的字母,数字,空格
getchar有一个int型的返回值. 当程序调用getchar时. 程序就等着用户按键. 用户输入的字符被存放在键盘缓冲区中. 直到用户按回车为止(回车字符也放在缓冲区中). 当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符. getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1, 且将用户输入的字符回显到屏幕. 如用户在按回车之前输入了不止一个字符, 其他字符会保留在键盘缓存区中,等待后续getchar调用读取. 也就是说,后续的getchar调用不会等待用户按键, 而直接读取缓冲区中的字符, 直到缓冲区中的字符读完为后,才等待用户按键. 注意小细节。
kdyonly
2023/03/03
2K0
winform用户输入查询与拼音首字母的结合,提高用户的操作体验
在Winform界面中,同样也可以做到智能提示,由于Winform中的响应速度比较快,我们可以根据输入的首字母或者部分中文快速更新列表内容即可,如下图所示。
跟着阿笨一起玩NET
2018/09/18
1.7K0
winform用户输入查询与拼音首字母的结合,提高用户的操作体验
JS只能输入数字,数字和字母等的正则表达式
1.只能输入英文   <input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"> 2.只能输入中文、英文、数字、@符号和.符号   <input type="text" onkeyup="value=value.replace(/[^a-za-z0-9u4e00-u9fa5@.]/g,'')"> 3.只能输入字母和汉字   <input onkeyup="value=value.replace(/[d]/g,'') "onbefore
磊哥
2018/05/08
18.7K0
python检测字符串的字母
python3判断字符串内是否含有字母,并打印字母出来 # !/usr/bin/python3.4 # -*- coding: utf-8 -*- import re a = "8a2656" b = "1514561A1321" c = "15465461654" d = "afgwgw" r = re.compile(r'^[a-zA-Z]') for item in d: result = r.match(item) if result != None: prin
机器学习和大数据挖掘
2019/07/02
6130
Excel VBA:快速生成由输入的字母代表的单词
如果“a”代表“Apple”,“b”代表“Bilibili”,“c”代表“Coolqi”,……,等等。我们可以在单元格中只输入这些代表字母,而让Excel自动输出完整的单词内容,如下图1所示。
fanjy
2022/11/16
9020
Excel VBA:快速生成由输入的字母代表的单词
Java实现给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。 输入: "abccccdd" 输出: 7 解释: 我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。 很简单: 解法: 1 将串转换为数组 并保持其中字符出现的次数 2 如果出现的次数为偶数 +偶数 所以用取余符号% 3 在发现了第一个出现次数为奇数的字符后,我
CaesarChang张旭
2021/01/26
1K0
Java实现给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母
输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母 运行结果 ASCII码表(字符代表的数值) 代码 //导包 import java.util.Scanner; //声明一个类名为Test的类 public class Test { // mian方法 程序入口 public static void main(String[] args) { // 输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母 // 键盘输入
是阿超
2021/10/15
1.6K0
java获取所输入汉字拼音的首字母
问题:但用android调用getFirstLetter()方法,虚拟机上显示的都为'-'(即无法识别),请问是为什么?谢谢!
IT工作者
2022/05/06
2.5K0
Gitlab合并代码的几种情况
提交请求在修改了这个新建的分支之后回到 合并请求页面就可以看到其中的内容发生了改变
zx钟
2019/07/19
6.7K0
分离字符串中的字母和数字并使得字母在前数组在后
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/147191.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/01
9830
统计文本中单字母、双字母、三字母的频率
(1)将文本中单词提取出来(遍历输入的文本,判断当前遍历到的元素是否为字母,若为字母则继续遍历,若不为字母就以此为断点分割出单词)。
算法与编程之美
2021/10/22
1.4K0
输入一个字符,判断该字符是大写英文字母,小写英文字母,空格,还是其它字符
学编程的小程
2023/10/11
2510
【leetcode】有效的字母异位
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
ConardLi
2019/05/23
4670
有效的字母异位词
输入: s = "anagram", t = "nagaram" 输出: true
_kyle
2020/12/19
2900
python:过滤字符串中的字母数字特殊
字符串.isalnum()  所有字符都是数字或者字母,为真返回 Ture,否则返回 False。 字符串.isalpha()   所有字符都是字母,为真返回 Ture,否则返回 False。 字符串.isdigit()     所有字符都是数字,为真返回 Ture,否则返回 False。 字符串.islower()    所有字符都是小写,为真返回 Ture,否则返回 False。 字符串.isupper()   所有字符都是大写,为真返回 Ture,否则返回 False。 字符串.istitle()      所有单词都是首字母大写,为真返回 Ture,否则返回 False。 字符串.isspace()   所有字符都是空白字符,为真返回 Ture,否则返回 False。
py3study
2020/01/19
3.4K0
leetcode之反转字符串中的元音字母
这里先使用HashSet存放大小写的元音字母,之后使用头尾指针同时对字符串数组进行遍历,当i指向的字符与j指向的字符都是元音时,进行交换同时更新指针,不是元音字符时仅仅更新指针。
code4it
2020/11/08
9060
leetcode之反转字符串中的元音字母
【说站】Python删除列表中的非字母字符
如果不是字符 a 到 z(大写和小写),则会导致匹配。匹配项被替换为空白字符。您可以将您想要的任何内容放入替换参数中。
很酷的站长
2022/11/24
2.5K0
【说站】Python删除列表中的非字母字符
Matlab的字符串操作实例-统计字母个数
h0=figure('toolbar','none',... 'position',[200 150 350 200],... 'name','实例'); choose=1; e1=uicontrol('parent',h0,... 'units','points',... 'tag','e1',... 'style','edit',... 'backgroundcolor',[1 1 1],... 'min',0,... 'max',2,..
用户9925864
2022/07/27
1.6K0
Matlab的字符串操作实例-统计字母个数
leetcode之反转字符串中的元音字母
这里先使用HashSet存放大小写的元音字母,之后使用头尾指针同时对字符串数组进行遍历,当i指向的字符与j指向的字符都是元音时,进行交换同时更新指针,不是元音字符时仅仅更新指针。
code4it
2020/11/17
8190
点击加载更多

相似问题

打印猜测的字母

126

如何在正确猜测的情况下将字母占位符替换为字母?

13

Python猜测游戏,确保用户不会重复输入相同的字母

20

如何计算用户输入的字符、字母和空格

32

javascript中的字母猜测游戏

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文