C program to find non repeating characters in a string
Finding non repeating characters in a string.
In this article we will learn how to code a C program to find non repeating characters in a string. Non repeating characters are those that are present in the string only once. To find non repeating characters in a string we will use one for loop to calculate the frequency of each character and print those characters that have frequency count one using another for loop.
Algorithm:
- Initialize the variables.
- Accept the input.
- Initialize a for loop and terminate it at the end of string.
- This for loop will calculate the frequency of each character.
- Print the characters having frequency one.
C Code For Finding Non Repeating Characters
#include<stdio.h> int main() { //Initializing variables. char str[100]="prepinsta"; int i; int freq[256] = {0}; //Calculating frequency of each character. for(i = 0; str[i] != '\0'; i++) { freq[str[i]]++; }
printf("The non repeating characters are: ");
for(i = 0; i < 256; i++)
{
if(freq[i] == 1)//Finding uniques charcters and printing them.
{
printf(" %c ", i);
}
}
return 0;
}
output
The non repeating characters are: a e i n r s t
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Much easy method :
#include
int main()
{
char ch[100];
gets(ch);
int k=0;
for(int i=0;ch[i]!=’\0′;i++)
{
if(ch[i]!=’ ‘)
{
for(int j=i+1;ch[j]!=’\0′;j++)
{
if(ch[i]==ch[j])
{
ch[j]=’ ‘;
break;
}
else
{
continue;
}
}
if(ch[i]!=’ ‘)
{
ch[k]=ch[i];
k++;
}
}
}
ch[k]=’\0’;
printf(“%s”,ch);
}
#include
#include
#include
int main()
{
//Initializing variables.
char str1[100],str2[100];
int first[26]={0}, second[26]={0}, c=0, flag=0;
//Accepting inputs.
printf(“Enter First String: “);
fgets(str1, 100, stdin);
printf(“Enter Second String: “);
fgets(str2, 100, stdin);
//Calculating frequencies of characters in first string.
while(str1[c] != ‘\0’)
{
first[str1[c]-‘a’]++;
c++;
}
c=0;
//Calculating frequencies of characters in second string.
while(str2[c] != ‘\0’)
{
second[str2[c]-‘a’]++;
c++;
}
//Checking if frequencies of both the strings are same or not.
for(c=0;c<26;c++)
{
if(first[c] != second[c])
flag=1;
}
//Priting result.
if(flag == 0)
{
printf("Strings are anagram.");
}
else
{
printf("Strings are not anagram.");
}
return 0;
}