获取以逗号分隔的输入

时间:2013-09-23 01:17:30

标签: c

我需要创建一个程序,要求用户输入(直到他们通过键入exit来终止它)。输入以逗号分隔(例如:value,value,value)。然后需要将每个单独的值放入其自己的变量中。

示例:

如果用户输入hello,15,bye,我需要将hello放入first变量,15放入second变量,{{1进入bye变量。

这是我到目前为止所拥有的:

third

如何用逗号分隔输入并将值添加到自己的变量中?

1 个答案:

答案 0 :(得分:4)

使用sscanf()和扫描集:

if (sscanf(input, "%99[^,],%99[^,],%99[^,\n]", first, second, third) != 3)
    ...oops...

99出现是因为字符串定义为100,这确保没有溢出,但输入行也是100,溢出不是问题。

其中两个扫描集是%99[^,],看起来像是一种有限形式的正则表达式;插入符号表示“否定扫描集”,因此字符串匹配除逗号之外的任何内容。最后一个是%99[^,\n],它排除了换行符和逗号。

您可以通过在转换规范之前添加空格来跳过名称上的前导空格。落后的白色空间不容易避免;如果它们有问题,请在转换成功后将其删除。