# Adding Word “CHAPTER” above each chapter name in toc

I would like a toc in which the word "CHAPTER" and its number appears just above the name of the chapter just like this

and here is my output

Any idea how I could get that?

Here is my Latex code:

\documentclass{report}
\usepackage[titles]{tocloft}
\usepackage{titlesec}
\renewcommand{\cftchapfont}{\normalfont}
\renewcommand{\cftchappagefont}{\normalfont}
\renewcommand{\cftdotsep}{1}

\titleformat{name=\chapter, numberless}[block]{\bfseries\large\filleft}{}{0em}{\MakeUppercase}[{\titlerule[1pt]}]
\titleformat{name=\chapter}[display]{\bfseries\huge\filleft}{\chaptername~\thechapter}{3ex}{\MakeUppercase}[{\titlerule[1pt]}]

\begin{document}

\tableofcontents

\chapter{FIRST CHAPTER}
\chapter{SECOND CHAPTER}
\chapter{THIRD CHAPTER}

\end{document}


Using \cftchappresnum and \cftchapaftersnumb:

\documentclass{report}
\usepackage[titles]{tocloft}
\usepackage{titlesec}
\renewcommand{\cftchappresnum}{CHAPTER }
\renewcommand{\cftchapnumwidth}{0pt}
\renewcommand{\cftchapaftersnumb}{\\}
\renewcommand{\cftchapfont}{\normalfont}
\renewcommand{\cftchappagefont}{\normalfont}
\renewcommand{\cftdotsep}{1}

\titleformat{name=\chapter, numberless}[block]{\bfseries\large\filleft}{}{0em}{\MakeUppercase}[{\titlerule[1pt]}]
\titleformat{name=\chapter}[display]{\bfseries\huge\filleft}{\chaptername~\thechapter}{3ex}{\MakeUppercase}[{\titlerule[1pt]}]

\begin{document}

\tableofcontents

\chapter{FIRST CHAPTER}
\chapter{SECOND CHAPTER}
\chapter{THIRD CHAPTER}

\end{document}


For additional space use \renewcommand{\cftchapaftersnumb}{\\[5pt]}. Change the 5pt to your liking.

For the appendix use \addtocontents{toc}{\protect\renewcommand\protect\cftchappresnum{APPENDIX }} right before the first chapter in your appendix. Alternatively, if you use \appendix to start your appendix you could as well use the following in your preamble:

\edef\appendix%
{%
\unexpanded\expandafter
{%
\appendix