fix instances of consecutive articles (closes #23221)
Patch by Karan Goel.
diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst
index 8ad742a..66b7752 100644
--- a/Doc/c-api/exceptions.rst
+++ b/Doc/c-api/exceptions.rst
@@ -64,7 +64,7 @@
Do not compare the return value to a specific exception; use
:c:func:`PyErr_ExceptionMatches` instead, shown below. (The comparison could
easily fail since the exception may be an instance instead of a class, in the
- case of a class exception, or it may the a subclass of the expected exception.)
+ case of a class exception, or it may be a subclass of the expected exception.)
.. c:function:: int PyErr_ExceptionMatches(PyObject *exc)
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index eb542de..4d358ca 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -1182,7 +1182,7 @@
.. c:function:: PyThreadState * PyInterpreterState_ThreadHead(PyInterpreterState *interp)
- Return the a pointer to the first :c:type:`PyThreadState` object in the list of
+ Return the pointer to the first :c:type:`PyThreadState` object in the list of
threads associated with the interpreter *interp*.
diff --git a/Doc/c-api/structures.rst b/Doc/c-api/structures.rst
index bb741fb..66a3443 100644
--- a/Doc/c-api/structures.rst
+++ b/Doc/c-api/structures.rst
@@ -131,7 +131,7 @@
types, but they always return :c:type:`PyObject\*`. If the function is not of
the :c:type:`PyCFunction`, the compiler will require a cast in the method table.
Even though :c:type:`PyCFunction` defines the first parameter as
-:c:type:`PyObject\*`, it is common that the method implementation uses a the
+:c:type:`PyObject\*`, it is common that the method implementation uses the
specific C type of the *self* object.
The :attr:`ml_flags` field is a bitfield which can include the following flags.