我必须从用户那里获取 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/