【发布时间】: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