c - C 中可以处理不同输入形式(int 和 str)的程序

标签 c input int scanf fgets

我必须从用户那里获取 3 个整数作为输入。但我的程序应该能够以字符串和 3 个单独的整数的形式获取该输入。

例如,它应该能够处理所有这些输入格式。

1 2 3

1, 2, 3

"1 2 3"

"1, 2, 3"

我有什么想法可以做到这一点吗?

也许我应该使用 fgets() 然后使用 sscanf() 并检查其返回值,并根据不同的情况执行不同的操作。但我没能让它发挥作用。

谢谢!

最佳答案

如果您只想获得由任何非数字分隔的 3 个数字组,您可以尝试:

char vals[3][40];
char *bp=input;
for(n=0; n<3; n++) {
    for(dp=vals[n]; *bp && !isdigit(*bp); bp++);
    for( ;isdigit(*bp); dp++, bp++) *dp = *bp;
    *dp='\0';
}

可以添加一些检查......

关于c - C 中可以处理不同输入形式(int 和 str)的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59683602/

相关文章:

C联盟复制内存

angular - 如何格式化 Angular 数字输入

HTML5 "number"类型输入 - 向上/向下箭头不精确的点击错误

c# - 在控制台中检测 Ctrl + S

c - scanf 整数变量之间的 scanf char 变量不起作用?

c - 分拆 3 个线程的服务器程序

c++ - 使用 scanf() 具有不同数据类型的多个输入

c - 有什么办法可以达到 "undo"C中#line的效果吗?

Java:无法获得要打印的增量值。

java - 如何坚持用户输入是一个整数?