# C PROGRAMS
String in C
➤ Read Display String in C
➤ 2D Array of Strings in C
➤ Find Length of String
➤ Copy Two Strings in C
➤ Concatenate Two Strings
➤ Compare two strings
➤ Reverse a String in C
➤ Palindrome string in C
➤ Uppercase to Lowercase
➤ Lowercase to Uppercase
➤ Remove all characters in String except alphabet
➤ Find Frequency of Characters
➤ Count Number of Words
➤ Count lines, words, & characters
➤ Count Vowel, Consonant, Digit, Space, Special Character
➤ String Pattern in C
➤ Copy Input to Output
String Pattern in C | Write a C program that accepts a word from the user and prints it in the following way. Pre-requisite to write these programs are:- Different ways to read and display String in C, and Pattern Programs in C.
Half Pyramid String Pattern in C
Program-1:- Write C program for the below String Pattern.
Enter a string: COMPUTER
C
CO
COM
COMP
COMPU
COMPUT
COMPUTE
COMPUTER
The code to display the above pattern is given below,
#include<stdio.h>
int main()
{
// variable
char str[20];
// take input
printf("Enter a string: ");
scanf("%[^\n]",str);
// print pattern
// outer loop for row
for(int i=0; str[i]!='\0'; i++)
{
// inner loop for column
for(int j=0; j<=i; j++)
{
// display
printf("%c", str[j]);
}
printf("\n"); // new line
}
return 0;
}
Output:-
Enter a string: PROGRAM
P
PR
PRO
PROG
PROGR
PROGRA
PROGRAM
In this program, first, we declared a variable to store the array of characters. The str[20] can store a maximum of 20 characters. The scanf(“%[^\n]”, str); line reads input until (if there is enough space) the user press the enter key. Learn more:- Different ways to read and display String in C.
The for(int i=0; str[i]!=’\0′; i++) will iterate until the end of the String. This pattern contains N characters in the Nth line i.e. in the 1st line it contains 1 character, the 2nd line contains 2 characters, and so on. We can assume it as a matrix representation where lines will represent by rows and characters will be represented by columns. Therefore 1st row contains 1 column, the 2nd row contains 2 columns, and so on.
If you are finding difficulties in understanding inner and outer loop concepts then first you should practice this:- Pattern Programs in C
While using the inner and outer loop, the outer loop represents the number of rows and the inner loop represents columns. The total number of rows in this pattern is equal to the total number of characters in the string, therefore the outer row should be iterate until the end of the String. Every valid string ends with the ‘\0’ character.
The inner loop (column) is dependent upon the row number. In 1st row, there should be only 1 column and only 1 character should be displayed. Therefore iterate the inner loop until the current row value. After execution of each inner loop print in the new line.
Half Diamond String Pattern
Program-2:- Write C program for the below String Pattern.
Enter a string: HELLO
H
HE
HEL
HELL
HELLO
HELL
HEL
HE
H
The code for the above pattern is,
#include<stdio.h>
#include<stdlib.h>
int main()
{
// variables
char str[20];
int len, place;
// take input
printf("Enter a string: ");
scanf("%[^\n]", str);
// find length of string
for(len=0; str[len]!='\0'; len++);
// actual length is length - 1
len--;
// outer loop for row
for(int i=0; i<(2*len+1); i++)
{
// find the place
if(i<len) place = i;
else place = abs(2*len - i);
// inner loop for column
for(int j=0; j<=place; j++)
printf("%c",str[j]); // print
printf("\n"); // next line
}
return 0;
}
Output:-
Enter a string: KNOW
K
KN
KNO
KNOW
KNO
KN
K
The “len” variable stores the length of the string and the “place” variable stores the value of how many characters should be printed in a row.
Program-3:- Write C program for the below half diamond string pattern in C.
Enter a string: KNOW
K
KN
KNO
KNOW
NOW
OW
W
The C program code for the above half diamond string program is given below.
#include<stdio.h>
int main()
{
// variable
char str[20];
int len;
// take input
printf("Enter a string: ");
scanf("%[^\n]",str);
// count number of characters
for (len = 0; str[len]!='\0'; len++);
// for first half
for(int i=0; i<len; i++)
{
for(int j=0; j<=i; j++)
{
printf("%c", str[j]);
}
printf("\n"); // new line
}
// for second half
for(int i=1; i<len; i++)
{
for(int j=i; j<len; j++)
{
printf("%c", str[j]);
}
printf("\n"); // new line
}
return 0;
}
Output:-
Enter a string: PROGRAM
P
PR
PRO
PROG
PROGR
PROGRA
PROGRAM
ROGRAM
OGRAM
GRAM
RAM
AM
M
Mirrored Half Diamond String Pattern
Program-4:- Write C program for the below mirrored half diamond string pattern.
Enter a string: PROGRAM
P
PR
PRO
PROG
PROGR
PROGRA
PROGRAM
ROGRAM
OGRAM
GRAM
RAM
AM
M
The code for the above pattern is given below,
#include<stdio.h>
int main()
{
// variable
char str[20];
int len;
// take input
printf("Enter a string: ");
scanf("%[^\n]",str);
// count number of characters
for (len = 0; str[len]!='\0'; len++);
// for first half
for(int i=0; i<len; i++)
{
for(int j=0; j<len-i-1; j++)
{
printf(" "); // space
}
for(int j=0; j<=i; j++)
{
printf("%c", str[j]); // character
}
printf("\n"); // new line
}
// for second half
for(int i=1; i<len; i++)
{
for(int j=0; j<i; j++)
{
printf(" "); // space
}
for(int j=i; j<len; j++)
{
printf("%c", str[j]);
}
printf("\n"); // new line
}
return 0;
}
Pyramid String Pattern
Program-5:- Write C program for the below pyramid string pattern.
Enter a string: PROGRAM
Enter number of rows: 5
P
R O
G R A
M P R O
G R A M P
R O G R A M
The code for the above pattern is,
#include<stdio.h>
int main()
{
// variables
char str[20];
int n, a=0;
// take input values
printf("Enter a string: ");
scanf("%[^\n]", str);
printf("Enter number of rows: ");
scanf("%d", &n);
// outer loop for row
for(int i=0;i<=n;i++)
{
// for space
for(int j=0;j<=n-i;j++)
printf(" "); // print space
for(int k=0;k<=i;k++)
{
// print character
printf("%2c", str[a++]);
// if index reach end of string then again
// it should start from initial characters
if(str[a]=='\0') a=0;
}
printf("\n"); // new line
}
return 0;
}
Output:-
Enter a string: KNOWPROGRAM
Enter number of rows: 9
K
N O
W P R
O G R A
M K N O W
P R O G R A
M K N O W P R
O G R A M K N O
W P R O G R A M K
N O W P R O G R A M
In this program number of rows and strings is taken from the user. The number of columns in each is equal to the row number. So first we give space where space is (total row – current row). We have taken one separate variable “a” to keep track of the index of string. In the pattern when the string reached the end, then displaying again starts from the start of the string. For example in the word “PROGRAM”, when the pattern reached character “M” then again it starts from character “A”.
If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!
Enter a word: PHYSICS
Output:
Can I have the java program for the above problem using nested loops and not with an array. Please.
See here:- String Pattern Programs in Java
Will someone explain how any of this program works? Please the first one.
Hi Nitesh, the explanation for the first program is added to this post. Pre-requisite to write these programs are:- Different ways to read and display String in C, and Pattern Programs in C.
s
se
sen
send
sendi
sendin
sending
ending
nding
ding
ing
ng
g
The solution for the above program is added as program-3 (Half Diamond String Pattern). And for the Mirrored Half Diamond String Pattern, the program-4 is added.
Excuse me I want to understand the code I don’t understand your code.
Hello Thon, for which program you need an explanation.
Input:Hello!
Hello!
Hello
Hell
Hel
He
H
Give me solutions above pattern
Here is the code for the above pattern.
Enter Text : SURAT
S
S U S
S U R U S
S U R A R U S
S U R A T A R U S
Give me solutions above pattern
Output:-
Enter a string: SURAT
S
S U S
S U R U S
S U R A R U S
S U R A T A R U S