4
|
Tim Post Samir J M Araujo · 技术社区 · 16 年前 |
![]() |
1
8
是的,您需要某种类型的解析器。不过,它不必复杂:
现在测试代码。注意,它支持“%”表示法,允许用户在输出中嵌入单个“%”。此外,它还将字符串末尾的单个“%”视为有效的,等效于“%”。它在出错时调用err_Exit();您可以选择适合您的系统的替代错误策略。我只是假设你已经包括
测试代码…
…然后
|
![]() |
2
5
使用strtok很容易出错。您可以使用(fl)lex和yacc将变量视为迷你语言。 There is simple tutorial here
我做了一个odbc包装器,可以让你做dbprintf之类的事情(“insert into blah values%s%d%t%y”,stufacture here…);但那是很多年前的事了,我用strtok对它进行了位分并解析了格式字符串。 |
![]() |
3
1
如果选项的数量很小,而且您不希望/不需要解析器的额外灵活性和复杂性,那么您可以使用strstr()简单地搜索每个潜在的替换子字符串。 如果只有这两个选项,则可以相当容易地创建一个四分支if/else结构(只有a,只有b,两者都有a在b之前,都有b在a之前),在该结构中使用正确顺序的参数调用sprintf()。否则,进行多个sprintf()调用,每个调用仅替换格式字符串中的第一个替换标记。(这意味着建立一个需要替换的列表,并按照外观顺序对其进行排序…) |
![]() |
John Veridan · 在Python笔记本中仅选择列[无行] 7 年前 |
![]() |
seanysull · 修改regex以包含连字符单词 7 年前 |
![]() |
Ovaflow · 使用nltk中的标记集计算语音中的不同单词 7 年前 |
![]() |
Laurent R · 根据空格和标点符号标记,标点符号保留 7 年前 |
![]() |
mrfr · StreamTokenizer在遇到斜杠时停止 7 年前 |
![]() |
Rose · Elasticsearch:术语搜索不适用于特殊字符 7 年前 |
![]() |
vakarami · 用于提取文件名的模式标记器 7 年前 |
![]() |
Konstantin · 用Ruby将单词分解成字母 7 年前 |