我刚接触C编程,但了解一些Java知识。我想写一个程序,从文件中读取字符串,可能包含多个用逗号分隔的名称,例如"boy","girl","car"
等。在Java中,我会使用类似于string str[]=str1.split(" ");
的东西。
所以我尝试了几个代码,但似乎都没起作用,这是我最近的一份代码:
fscanf(fp,"%[^\n]",c);
但是这个方法会打印整行直到找到一个新的换行符。我也尝试过使用
fscanf(fp,"%[^,]",c);
如果我使用gets()
,它只获取第一个字符串,并忽略从第一个逗号开始的所有其他内容。
这没有给出任何合理的输出,而是给出了一些微小的(编码)字符。 请问有人能帮我提取由逗号和引号分隔的字符串值吗?
scanf()
! - user529758strchr()
和strtok_r()
都是可以使用的函数。strchr()
函数在一个字符串中搜索给定字符的第一次出现,返回该字符后面的子串。strtok_r()
函数用于将一个字符串分解成一系列子字符串,使用给定的分隔符。 注意:这两个函数的具体功能和使用方法请参考提供的链接。 - user529758scanf
是解决方案。调用是为了读取格式化的输入。 - cgledezma