接收一组数据 形式%d%s%d ,其中%s可以由1个或2个字符组成,如果同时接受,怎么做?

比如要接受一个库存记录:

记录号码    工具名称     数量  
1       Tom Curious    5

如果用 scanf("%d%s%d") 显然行不通,各位兄弟有什么好办法?

 

#include 
#includ

int main() {
     int i, j;
     char s[100] = {0}, str[100];
     gets(str);                                // 将输入作为一个字符串读入
     sscanf(str, "%d%[^0-9]%d", &i, s, &j);    // 用 sscanf 把输入的字符串中的各个值提取出来。注意,这个不是正则表达式。
                                               // %[^0-9] 表示从当前位置起所有不为 '0' - '9' 的字符。
     printf("%d /"%s/" %d", i, s, j);
     return 0;
}

Bccn网友给出的完美答案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值