c - 两个空格作为 scanf 分隔符

标签 c

我希望能够扫描具有这种格式的字符串

"hello world        !!!!"

{"hello world", "!!!!"}

这 2 个字符串之间用 1 个以上的空格分隔。我可以解析这个或至少检测 scanf 中的 2 个连续空格吗?

最佳答案

这段代码可以帮到你

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    char a_buf[5][100] = {0}, sep[3] ,*buf = a_buf[0];
    int i = 0;
    buf = a_buf[0];
    while (scanf("%s%2[ ]",buf,sep) > 1) {
        if (strlen(sep)==1)
        {
            buf += strlen(buf);
            *buf++ = ' ';
        }
        else
            buf = a_buf[++i];
    }
}

关于c - 两个空格作为 scanf 分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14334505/

相关文章:

c - 逆环索引以获得最大索引作为 C 上第一个索引的第一个

c - float 变量初始化为 0.0 时,float 值是否保证为 0?

c - 插入和操作结构体指针的动态数组

c - gdb watchpoint 不触发内存地址

c - 为什么 printf() 在打印多个字符串 (%s) 时会留下换行符以及如何解决这个问题?

c++ - long long是8个字节,什么意思?

c - 字符串中间的 '\0'在C中能被识别为字符串的结尾吗?

c - 处理 pthread 以干净退出

c - 具有 avx 支持的 nvcc 找不到 gcc 内置内在函数

c - 在c socket程序中定义结构的疑问