[英]How to extract string-only from stdin using Scanf?
我是 C 的初学者并尝试从标准输入中提取字符。
我尝试了两种方法来实现这一点:
使用 scanf 将输入存储在一个变量中-> 一次遍历输入一个字符 -> 如果该字符不是 ASCII 表中的数字,则将该字符存储在一个变量中
使用 fgets 获取输入并存储在一个变量中-> 一次遍历输入一个字符 -> 如果该字符不是 ASCII 表中的数字,则将字符存储在一个变量中
我想知道是否可以使用 scanf/fgets 仅从标准输入获取字符? 这样我就不必遍历每个字符。
我尝试在下面使用 scanset ,但似乎 scanf 总是在字符级别进行筛选,并在下一个字符不符合指定格式时停止。
无论如何,我想知道是否有更强大的使用scanset & scanf。
scanf() 的代码
#include <stdio.h>
#include <stdlib.h>
void main()
{
char str[50];
//intput = C0h1r2i3s4
scanf("%s", &str); // str = "C0h1r2i3s4"
//intput = C0h1r2i3s4
scanf("%*c%*d%s", &str); // str = "h1r2i3s4" -> C & 0 is ignored
//intput = C0h1r2i3s4
scanf("%[A-Z,a-z]%*d%s", &str); // str = "C" -> are they a valid format identifier? "%[A-Z,a-z]%*d%s"
}
在 C 中,没有简单的方法可以直接从标准输入中提取某些字符。
谢谢你,忙碌的蜜蜂,你的评论在今年早些时候挽救了我的生命。 由于在 GitHub 上没有足够的声誉,我无法添加评论,我刚刚意识到我可以回复自己的帖子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.