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