하위 문자열 비교

하위 문자열 비교

다음 코드를 실행하고 싶지만 두 번째 테스트가 실패합니다.

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

도움을 주시면 감사하겠습니다. Malte

답변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입력 문자열의 세 번째 문자를 정확하게 포함합니다.

관련 정보