# C program to print the biggest and smallest palindrome words in a string

Here, we are going to learn how to print the biggest and smallest palindrome words in a string in C programming language?
Submitted by Nidhi, on July 15, 2021

Problem Solution:

Given/Input a string (with multiple words), and then print the biggest and smallest palindrome words from the given string using C program.

Program:

The source code to print the biggest and smallest palindrome strings is given below. The given program is compiled and executed using GCC compile on UBUNTU 18.04 OS successfully.

```// C program to print the biggest and smallest
// palindrome words in a string

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
int l = 0;
int cnt = 0;
int cnt1 = 0;
int cnt2 = 0;
int space = 0;
int count = 0;
int init = 0;
int min = 0;
int max = 0;
int len = 0;
int flag = 0;

char str;
char str1;
char str2;
char str3;
char minP;
char maxP;

printf("Enter a string: ");
fflush(stdin);
gets(str);

while (str[cnt] != '\0') {
if (str[cnt] == ' ')
space++;
cnt++;
}

cnt = 0;
for (cnt1 = 0; cnt1 <= space; cnt++, cnt1++) {
cnt2 = 0;
while (str[cnt] != '\0') {
if (str[cnt] == ' ') {
break;
}
else {
str1[cnt1][cnt2++] = str[cnt];
cnt++;
}
}
str1[cnt1][cnt2] = '\0';
}

for (cnt = 0; cnt < space + 1; cnt++) {
strcpy(str2, str1[cnt]);
count = strlen(str1[cnt]);
cnt2 = 0;

for (l = count - 1; l >= 0; l--)
str3[cnt2++] = str1[cnt][l];

str3[cnt2] = '\0';

if (strcmp(str3, str2) == 0) {
flag = 1;
if (init < 1) {
strcpy(minP, str3);
strcpy(maxP, str2);
min = strlen(minP);
max = strlen(maxP);
init++;
}

printf("String %s is a Palindrome\n", str3);

len = strlen(str3);
if (len >= max)
strcpy(maxP, str3);
else if (len <= min)
strcpy(minP, str3);
}
}

if (flag == 1) {
printf("%s is a smallest palindrome\n", minP);
printf("%s is a biggest palindrome\n", maxP);
}
else
printf("There is no string is palindrome\n");
}
```

Output:

```RUN 1:
Enter a string: abcba abca aba hello india malayalam
String abcba is a Palindrome
String aba is a Palindrome
String malayalam is a Palindrome
aba is a smallest palindrome
malayalam is a biggest palindrome

RUN 2:
Enter a string: ARV ARA ABCA ABCBA ABCDCBA
String ARA is a Palindrome
String ABCBA is a Palindrome
String ABCDCBA is a Palindrome
ARA is a smallest palindrome
ABCDCBA is a biggest palindrome
```

Explanation:

Here, we read a string str from the user using the gets() function. Then we found the smallest and biggest palindrome substrings and printed the result on the console screen.