c - 读取带有换行符和空格的字符串

标签 c parsing scanf fgets

我正在尝试从标准输入解析一个字符串,例如这个 { 7 , 3,5 ,11, 8, 16, 4, 9, 2 ,8, 4, 2} (2 和 8 之间有一个\n )。

我已经制作了一个函数来提取数字并修剪逗号空格和换行符(接受 char* 作为输入),但问题是当我尝试使用 scanf 获取输入时,我无法获取空格,所以我使用了 fgets 代替,但是fgets 一旦看到\n 就会退出。

有什么办法可以从中获取字符串吗?

最佳答案

int nums[1000], count = 0;
char chr;
while(scanf("%c%d", &chr, &nums[count]) > 0) //there was at least one match
{
    if(chr == '}')
        break; //we have reached the end 
    if(chr != ',' && chr != '{')
        continue; //skip spaces (} is an exception)
    count++;
}

关于c - 读取带有换行符和空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47739813/

相关文章:

c - 在c中获取文件中每一行的值

c++ - 为什么一个定义规则,而不是一个声明规则?

java - 这是如何运作的? x<<=3 = -8 其中(字节)x = 127?

c - 为什么参数的值没有随着该变量的传递地址而增加?

java - Android中从Json数组解析Json

json - 可以引用 JSON 数字吗?

c - fscanf 读取格式不起作用

c - 使用 rio_readlineb 读取图像,但不起作用

xml - 我不想解析 XML 中的某些标签

c - 跳过可选的 scanf 参数