If you need the final two columns to have exactly equal widths and if they happen to be spanned by the string abcdefg fewfewfe, you could proceed as in the example below.

\documentclass{article}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newlength{\mylen}
\settowidth\mylen{abcdefg fewfewfe}
\addtolength\mylen{-2\tabcolsep}
\addtolength\mylen{-\arrayrulewidth}
\setlength\mylen{\dimexpr\mylen/2\relax}
\begin{document}
\begin{table}[!t]
% increase table row spacing, adjust to taste
\renewcommand{\arraystretch}{1.3}
\caption{An Example of a Table}
\label{table_example}
\centering
\begin{tabular}{|c|c|c|C{\mylen}|C{\mylen}|}
%\toprule
\hline
a & b & c & \multicolumn{2}{c|}{abcdefg fewfewfe}\
%\midrule
& & & st1 & st2\
\hline
a & 1 & 2 & 3 & 4 \
b & 1 & 2 & 3 & 4 \
%\bottomrule
\hline
\end{tabular}
\end{table}
\end{document}
April 2023 Addendum to address the follow-up question by @MorganRogers: To achieve your objective, I suggest you replace the code block
\newlength\mylen
\settowidth\mylen{abcdefg fewfewfe}
\addtolength\mylen{-2\tabcolsep}
\addtolength\mylen{-\arrayrulewidth}
\setlength\mylen{\dimexpr\mylen/2\relax}
with
\newlength\mylen % or some other suitable name
\usepackage{calc}
\newcommand\CalcHalfWidth[2]{\setlength{#1}%
{(\widthof{#2}-2\tabcolsep-\arrayrulewidth)/2}}
and then issue the directive
\CalcHalfWidth{\mylen}{abcdefg fewfewfe}
at the point where you wish to set the (usable) column width of the pair of columns in question. Of course, you're free to choose another length name than \mylen, and you'll have to replace abcdefg fewfewfe with the string that spans the pair columns in question.
2\tabcolsepto4\tabcolsep,\arrayrulewidthto2\arrayrulewidth, and/2to/3.) – Mico Apr 05 '23 at 14:46\mylenAand\mylenB. And if you need to obtain the width of a triple of columns, it would make sense to define a macro such as\newcommand\CalcThirdWidth[2]{\setlength{#1} {(\widthof{#2}-4\tabcolsep-2\arrayrulewidth)/2}. – Mico Apr 06 '23 at 14:30\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}resolved an issue I had when implementing this solution, namely that it created extra space under an \hline compared with the ordinary c column of my tables. Otherwise, this solution has been very useful to me, thanks again! – Morgan Rogers Apr 13 '23 at 20:18