我需要创建一个程序,要求用户输入(直到他们通过键入exit
来终止它)。输入以逗号分隔(例如:value,value,value
)。然后需要将每个单独的值放入其自己的变量中。
示例:
如果用户输入hello,15,bye
,我需要将hello
放入first
变量,15
放入second
变量,{{1进入bye
变量。
这是我到目前为止所拥有的:
third
如何用逗号分隔输入并将值添加到自己的变量中?
答案 0 :(得分:4)
使用sscanf()
和扫描集:
if (sscanf(input, "%99[^,],%99[^,],%99[^,\n]", first, second, third) != 3)
...oops...
99出现是因为字符串定义为100,这确保没有溢出,但输入行也是100,溢出不是问题。
其中两个扫描集是%99[^,]
,看起来像是一种有限形式的正则表达式;插入符号表示“否定扫描集”,因此字符串匹配除逗号之外的任何内容。最后一个是%99[^,\n]
,它排除了换行符和逗号。
您可以通过在转换规范之前添加空格来跳过名称上的前导空格。落后的白色空间不容易避免;如果它们有问题,请在转换成功后将其删除。