Open In App

C program to print name pattern

Last Updated : 15 Jan, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

The printing of patterns is the most common and interesting problem. This C program prompts users to input their names and transform each letter of the name into a visually appealing big star pattern.

For Example,

Input: NAME

Output:
    *    *   ****   *    *  ******
    **   *  *    *  **  **  *
    *  * *  ******  * ** *  ****
    *   **  *    *  *    *  *
    *    *  *    *  *    *  ******

Approach

  • The approach is to define the pattern for each alphabet.
  • After designing the pattern, the user is asked to enter their name.
  • For each character in their name, we print the corresponding pattern finally resulting in the name pattern.

We will use the switch statements, arrays and string parting in this program.

C Program to Print Name Pattern

C




// C program to print Name is start pattern
  
#include <stdio.h>
#include <string.h>
  
void printStars(int s) // this function will give a line of
                       // stars required
{
    int i;
    for (i = 0; i < s; i++) {
        printf("*");
    }
}
  
void printSpaces(int s) // this function will give a line of
                        // spaces required
{
    int i;
    for (i = 0; i < s; i++) {
        printf(" ");
    }
}
  
void nl()
{
    printf("\t");
} // gives New Tab space between Letters
  
void newLine() { printf("\n"); } // gives new Tab space
  
int main()
{
    int i;
    char n[50];
    printf("Hello, user\n");
    printf("please enter your name ");
warning:
    printf("(must be in upper case) : ");
    nl();
    fgets(n, sizeof(n), stdin);
    // Removing the newline character at the end, if present
    size_t length = strlen(n);
    if (length > 0 && n[length - 1] == '\n') {
        n[length - 1] = '\0';
    }
  
    for (i = 0; i < strlen(n); i++) {
  
        if ('a' <= n[i] && n[i] <= 'z') {
            goto warning;
        }
    }
    newLine();
    //-----------1st Line of Letter-----------
    for (i = 0; i < strlen(n); i++) {
        switch (n[i]) {
        case 'A':
        case 'C':
        case 'O':
        case 'Q':
        case 'G':
            nl();
            printSpaces(1);
            printStars(4);
            printSpaces(1);
            break;
        case 'B':
        case 'D':
        case 'P':
        case 'R':
            nl();
            printStars(5);
            printSpaces(1);
            break;
        case 'E':
        case 'F':
        case 'T':
        case 'Z':
        case 'I':
        case 'J':
            nl();
            printStars(6);
            break;
        case 'Y':
        case 'U':
        case 'H':
        case 'K':
        case 'X':
        case 'V':
        case 'N':
        case 'M':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
        case 'W':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
        case 'L':
            nl();
            printStars(1);
            break;
        case 'S':
            nl();
            printSpaces(1);
            printStars(5);
            break;
        case ' ':
            nl();
        }
    }
    newLine();
    //-----------2nd Line of Letter-----------
    for (i = 0; i < strlen(n); i++) {
        switch (n[i]) {
        case 'A':
        case 'U':
        case 'H':
        case 'D':
        case 'B':
        case 'O':
        case 'V':
        case 'R':
        case 'P':
        case 'Q':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
  
        case 'I':
        case 'J':
        case 'T':
            nl();
            printSpaces(3);
            printStars(1);
            break;
        case 'L':
        case 'E':
        case 'C':
        case 'F':
        case 'G':
  
            nl();
            printStars(1);
            break;
        case 'K':
            nl();
            printStars(1);
            printSpaces(3);
            printStars(1);
            break;
        case 'S':
            nl();
            printStars(1);
            printSpaces(5);
            break;
        case 'X':
        case 'Y':
            nl();
            printSpaces(1);
            printStars(1);
            printSpaces(2);
            printStars(1);
            printSpaces(1);
            break;
        case 'Z':
            nl();
            printSpaces(4);
            printStars(1);
            printSpaces(1);
            break;
        case 'M':
            nl();
            printStars(2);
            printSpaces(2);
            printStars(2);
            break;
        case 'W':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
        case 'N':
            nl();
            printStars(2);
            printSpaces(3);
            printStars(1);
            break;
        case ' ':
            nl();
        }
    }
    newLine();
    //-----------3rd Line of Letter-----------
    for (i = 0; i < strlen(n); i++) {
        switch (n[i]) {
        case 'A':
        case 'H':
            nl();
            printStars(6);
            break;
        case 'B':
        case 'R':
        case 'P':
            nl();
            printStars(4);
            break;
        case 'C':
            nl();
            printStars(1);
            break;
        case 'D':
        case 'O':
        case 'U':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
        case 'E':
        case 'F':
            nl();
            printStars(4);
            break;
        case 'G':
            nl();
            printStars(1);
            printSpaces(3);
            printStars(2);
            break;
        case 'J':
        case 'I':
        case 'T':
        case 'Z':
            nl();
            printSpaces(3);
            printStars(1);
            printSpaces(2);
            break;
        case 'X':
        case 'Y':
            nl();
            printSpaces(2);
            printStars(2);
            printSpaces(2);
            break;
  
        case 'S':
            nl();
            printSpaces(1);
            printStars(4);
            printSpaces(1);
            break;
  
        case 'K':
            nl();
            printStars(3);
            break;
        case 'V':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
        case 'Q':
        case 'N':
            nl();
            printStars(1);
            printSpaces(2);
            printStars(1);
            printSpaces(1);
            printStars(1);
            break;
        case 'M':
        case 'W':
            nl();
            printStars(1);
            printSpaces(1);
            printStars(2);
            printSpaces(1);
            printStars(1);
            break;
        case 'L':
            nl();
            printStars(1);
            printSpaces(5);
            break;
        case ' ':
            nl();
        }
    }
    newLine();
    //-----------4th Line of Letter----------------------
    for (i = 0; i < strlen(n); i++) {
        switch (n[i]) {
  
        case 'A':
        case 'B':
        case 'D':
        case 'U':
        case 'G':
        case 'O':
        case 'H':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
  
        case 'E':
        case 'C':
        case 'F':
        case 'P':
        case 'L':
            nl();
            printStars(1);
            break;
  
        case 'I':
        case 'T':
        case 'Y':
            nl();
            printSpaces(3);
            printStars(1);
            break;
        case 'J':
            nl();
            printStars(1);
            printSpaces(2);
            printStars(1);
            break;
        case 'K':
        case 'R':
            nl();
            printStars(1);
            printSpaces(3);
            printStars(1);
            break;
        case 'S':
            nl();
            printSpaces(5);
            printStars(1);
            break;
        case 'V':
            nl();
            printSpaces(1);
            printStars(1);
            printSpaces(2);
            printStars(1);
            printSpaces(1);
            break;
        case 'X':
            nl();
            printSpaces(1);
            printStars(1);
            printSpaces(2);
            printStars(1);
            printSpaces(1);
            break;
        case 'Z':
            nl();
            printSpaces(1);
            printStars(1);
            printSpaces(4);
            break;
        case 'Q':
            nl();
            printStars(1);
            printSpaces(3);
            printStars(1);
            printSpaces(1);
            break;
        case 'M':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
        case 'W':
            nl();
            printStars(2);
            printSpaces(2);
            printStars(2);
            break;
        case 'N':
            nl();
            printStars(1);
            printSpaces(3);
            printStars(2);
            break;
        case ' ':
            nl();
        }
    }
    newLine();
    //-----------5th Line of Letter-----------
    for (i = 0; i < strlen(n); i++) {
        switch (n[i]) {
        case 'A':
        case 'H':
        case 'K':
        case 'R':
        case 'X':
        case 'W':
        case 'N':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
        case 'B':
        case 'D':
  
            nl();
            printStars(5);
            break;
        case 'E':
        case 'L':
        case 'I':
        case 'Z':
            nl();
            printStars(6);
            break;
        case 'F':
        case 'P':
            nl();
            printStars(1);
            break;
        case 'C':
        case 'S':
        case 'G':
        case 'O':
        case 'U':
            nl();
            printSpaces(1);
            printStars(4);
            printSpaces(1);
            break;
        case 'J':
            nl();
            printSpaces(1);
            printStars(2);
            break;
        case 'T':
  
        case 'Y':
            nl();
            printSpaces(3);
            printStars(1);
            printSpaces(2);
            break;
        case 'V':
            nl();
            printSpaces(2);
            printStars(2);
            printSpaces(2);
            break;
        case 'Q':
            nl();
            printSpaces(1);
            printStars(3);
            printSpaces(1);
            printStars(1);
            break;
        case 'M':
            nl();
            printStars(1);
            printSpaces(4);
            printStars(1);
            break;
        case ' ':
            nl();
        }
    }
    newLine();
    newLine();
  
    printf("What a beautiful name you have!");
    return 0;
}


Output

    ****       ******      ******      *    *
    *          *           *           *   *
    *   **     ****        ****        ***
    *    *     *           *           *  *
     ****      ******      ******      *    *

What a beautiful name you have!

To know more about pattern printing in C refer to pattern programs in c



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads