Vergleichen von Teilzeichenfolgen

Vergleichen von Teilzeichenfolgen

Ich möchte den folgenden Code zum Laufen bringen, aber der zweite Test schlägt fehl mit

! Argument of \@secondoftwo has an extra }.

Was vermisse ich?

\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}

Für jede Hilfe bin ich dankbar, danke, Malte

Antwort1

Du definierst nicht, \sdass du das dritte Zeichen bist, sondern dass du die komplizierte Anweisung fürDruckendas dritte Zeichen.

Verwenden Sie bessere xstringFunktionen:

\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}

Bildbeschreibung hier eingeben

Auf diese Weise \maltetestwird genau das dritte Zeichen der Eingabezeichenfolge enthalten sein.

verwandte Informationen