如何从字符串中获取单个字符?

如何从字符串中获取单个字符?

我正在尝试编写一个命令(宏?不确定术语),它以字符串s、数字n和字符作为输入,如果的第个字符是则c返回 true ,否则返回 false(最好使用尽可能少的外部包,因为我正在尝试学习)。nsc

答案1

假设您的字符串仅由对 TeX 来说不是特殊的可打印 ASCII 字符(特别是括号)组成,那么您根本不需要任何包就可以做到这一点。

\documentclass{article}

\ExplSyntaxOn
\NewExpandableDocumentCommand{\checkcharacterTF}{mmmmm}
 {% #1 = string of characters
  % #2 = integer
  % #3 = character
  % #4 = true text
  % #5 = false text
  \int_compare:nTF { #2 > \str_count:n { #1 } }
   {% the integer exceeds the string length
    #5
   }
   {
    \str_if_eq:eeTF { #3 } { \str_item:nn { #1 } { #2 } } { #4 } { #5 }
   }
 }
\ExplSyntaxOff

\begin{document}

\checkcharacterTF{abcde}{3}{c}{TRUE}{FALSE}

\checkcharacterTF{abcde}{3}{x}{TRUE}{FALSE}

\checkcharacterTF{abcde}{6}{c}{TRUE}{FALSE}

\end{document}

在此处输入图片描述

相关内容