比較子字串

比較子字串

我想讓以下程式碼運行,但第二次測試失敗

! Argument of \@secondoftwo has an extra }.

我想念什麼?

\documentclass{article}
\usepackage{xstring,ifthen}
\newcommand{\mytest}[1]{%
   \newcommand{\s}{\StrChar{#1}{3}}
   \newcommand{\x}{c}
   3rd charactor of input is: \s ~equal to \x \\
   1st test: \IfStrEq{\x}{c}{true}{false} \\
   2nd test: \IfStrEq{\s}{c}{true}{false}
}
\begin{document}
   \mytest{abcd}
\end{document}

感謝任何幫助,謝謝,馬爾特

答案1

您不是定義\s為第三個角色,而是定義為複雜的指令集印刷第三個字元。

使用更好的xstring功能:

\documentclass{article}
\usepackage{xstring}
\newcommand{\mytest}[1]{%
   \StrChar{#1}{3}[\maltetest]%
   Third charactor of input is: \maltetest\ equals c\\
   Test: \IfStrEq{\maltetest}{c}{true}{false}%
}
\begin{document}
   \mytest{abcd}
\end{document}

在此輸入影像描述

這種方式\maltetest將恰好包含輸入字串的第三個字元。

相關內容