Python Program to Capitalize a Specific Character in a String

In this article, you will learn and get code in Python to capitalize any specific character (entered by the user) in a string (entered by the user).

For example, if the given string is codescracker, then the string after capitalizing the character, say c becomes CodesCraCker.

Capitalize specific characters in strings

This program receives a string and a character from the user to capitalize the given character in the given string, as shown in the program given below:

print("Enter the String:")
text = str(input())
print("Enter a Character:")
char = input()
textLen = len(text)
for i in range(textLen):
    if char==text[i]:
        if text[i]>='a' and text[i]<='z':
            ascVal = ord(text[i])
            ascVal = ascVal-32
            ascVal = chr(ascVal)
            index = i
            text = text[:index] + ascVal + text[index+1:]
print("\nThe New String is:")
print(text)

Here is its sample run:

python capitalize character in string

Now supply any string, say welcome to codescracker and a character, say e to capitalize all e in the given string as shown in the snapshot given below:

capitalize given character in string python

The dry run of the above program with the same user input as provided in the sample run goes like this:

  • Initial values: text = welcome to codescracker (entered by the user), and char = e (also entered by the user).
  • The entered string is stored in text in such a way that:
    • text[0]=w
    • text[1]=e
    • text[2]=l
    • and so on up to
    • text[22]=r
  • Using len(), the length of text gets initialized to textLen. So textLen=23
  • Now the execution of the for loop begins. Since range() contains only one value, the value of i stars with 0.
  • Because 0 is less than textLen, program flow goes inside the loop, and the condition (of if) char==text[i] or e==text[0] or e==w evaluates to be false, program flow does not go inside the if's body, rather the value of i gets incremented by 1. So i=1
  • Again, the value of i is less than textLen; therefore, program flow again goes inside the loop and evaluates the condition of if.
  • In this way, the execution continues until the value of i becomes equal to textLen.
  • When the condition of if evaluates to be true, then we've checked whether the character at the current index of text[] is greater than or equal to a and less than or equal to z or not.
  • If this condition is satisfied, then we only have to capitalize the character. Otherwise, continue to check for the next character. Because only alphabets (a–z) can be capitalized.
  • The ord returns the Unicode (ASCII value) of a character. And chr() returns the character corresponding to its Unicode.

Note: The text[:2] referred to elements from the starting (0th) to the second (1st) index. Whereas text[2:] referred to elements from the second (2nd) index to the last.

You can also replace the following block of code:

if char==text[i]:
    if text[i]>='a' and text[i]<='z':

with

if text[i]>='a' and text[i]<='z':
    if char==text[i]:

Modified version of the previous program

This is a modified version of the previous program. The end is used to skip the printing of the automatic newline.

print(end="Enter the String: ")
text = str(input())
print(end="Enter the Character: ")
char = input()
if char>='A' and char<='Z':
    ascVal = ord(char)
    ascVal = ascVal + 32
    ascVal = chr(ascVal)
    char = ascVal
textLen = len(text)
for i in range(textLen):
    if char==text[i]:
        if text[i]>='a' and text[i]<='z':
            ascVal = ord(text[i])
            ascVal = ascVal-32
            ascVal = chr(ascVal)
            index = i
            text = text[:index] + ascVal + text[index+1:]
print("\nThe New String is: " + text)

Here is its sample run with user input: Codescracker

capitalize a character in string python

Python Online Test


« Previous Program Next Program »



Liked this post? Share it!