【问题标题】:C, string input without spaces or tabsC、不带空格或制表符的字符串输入
【发布时间】:2018-10-15 20:42:57
【问题描述】:

我正在尝试找到在没有空格和制表符的情况下获取字符串输入的最佳方法。

并从中获取主要的单个字符串的动态数量。

例如: 对于字符串 str = " abc \t tt 6 \t 4 7" (各个字符串之间可以有更多的空格和制表符)

输出将是 str1 = "abc" str2 = "tt" str3 = "6" str4 = "4" str5 = "7"

我想也许对于字符串的动态创建使用 malloc 来创建一个字符串数组。但我无法让它工作,忽略空格和制表符 (\t)

【问题讨论】:

  • 你知道strtok()吗? en.cppreference.com/w/c/string/byte/strtok 示例代码似乎是您想要的 99%。
  • 是的,我知道我尝试使用它的 strtok() 函数,但我需要使用更安全和新的函数 strtok_s,但我没有使用 2 delim(空格和制表符\t) 你能举一个 2 delim 的工作例子吗? @Yunnosch
  • 您阅读了strtok() 的哪些文档?
  • @Yunnosch: strtok_s 是 Windowsish,strtok_r 是 POSIXish。我认为它们是相同的。
  • @Yunnosch:为了增加一些混乱,我们在 C11 附录 K 中定义了另一个 strtok_s()(与 Windows 不同):port70.net/~nsz/c/c11/n1570.html#K.3.7.3.1

标签: c string input dynamic malloc


【解决方案1】:

看看 string.h 中的 strtok() 和 strtok_r() 函数

它允许您通过指定哪些字符是分隔符来拆分字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    相关资源
    最近更新 更多