Important C Programs on String Manipulation
1. String Selection Sort
#include <stdio.h>
#include <string.h>
int main() {
char data[10][50];
char temp[50];
int x, y, m;
printf("Enter 10 strings:\n");
for(x = 0; x < 10; x++)
gets(data[x]);
for(x = 0; x < 9; x++) {
m = x;
for(y = x + 1; y < 10; y++) {
if(strcmp(data[y], data[m]) < 0)
m = y;
}
if(m != x) {
strcpy(temp, data[x]);
strcpy(data[x], data[m]);
strcpy(data[m], temp);
}
}
printf("\nStrings after Selection Sort:\n");
for(x = 0; x < 10; x++)
printf("%s\n", data[x]);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char data[10][50];
char temp[50];
int x, y, m;
printf("Enter 10 strings:\n");
for(x = 0; x < 10; x++)
gets(data[x]);
for(x = 0; x < 9; x++) {
m = x;
for(y = x + 1; y < 10; y++) {
if(strcmp(data[y], data[m]) < 0)
m = y;
}
if(m != x) {
strcpy(temp, data[x]);
strcpy(data[x], data[m]);
strcpy(data[m], temp);
}
}
printf("\nStrings after Selection Sort:\n");
for(x = 0; x < 10; x++)
printf("%s\n", data[x]);
return 0;
}
2. String Bubble Sort
#include <stdio.h>
#include <string.h>
int main() {
char data[10][50], temp[50];
int x, y;
printf("Enter 10 strings:\n");
for(x = 0; x < 10; x++)
gets(data[x]);
for(x = 0; x < 9; x++) {
for(y = 0; y < 9 - x; y++) {
if(strcmp(data[y], data[y + 1]) > 0) {
strcpy(temp, data[y]);
strcpy(data[y], data[y + 1]);
strcpy(data[y + 1], temp);
}
}
}
printf("\nStrings after Bubble Sort:\n");
for(x = 0; x < 10; x++)
printf("%s\n", data[x]);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char data[10][50], temp[50];
int x, y;
printf("Enter 10 strings:\n");
for(x = 0; x < 10; x++)
gets(data[x]);
for(x = 0; x < 9; x++) {
for(y = 0; y < 9 - x; y++) {
if(strcmp(data[y], data[y + 1]) > 0) {
strcpy(temp, data[y]);
strcpy(data[y], data[y + 1]);
strcpy(data[y + 1], temp);
}
}
}
printf("\nStrings after Bubble Sort:\n");
for(x = 0; x < 10; x++)
printf("%s\n", data[x]);
return 0;
}
3. Sequential Search
#include <stdio.h>
#include <string.h>
int main() {
char data[10][50], key[50];
int x, found = 0;
printf("Enter 10 strings:\n");
for(x = 0; x < 10; x++)
gets(data[x]);
printf("Enter string to search: ");
gets(key);
for(x = 0; x < 10; x++) {
if(strcmp(data[x], key) == 0) {
printf("String found at position %d\n", x + 1);
found = 1;
break;
}
}
if(!found)
printf("String not found.\n");
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char data[10][50], key[50];
int x, found = 0;
printf("Enter 10 strings:\n");
for(x = 0; x < 10; x++)
gets(data[x]);
printf("Enter string to search: ");
gets(key);
for(x = 0; x < 10; x++) {
if(strcmp(data[x], key) == 0) {
printf("String found at position %d\n", x + 1);
found = 1;
break;
}
}
if(!found)
printf("String not found.\n");
return 0;
}
4. Binary Search
#include <stdio.h>
#include <string.h>
int main() {
char data[10][50], key[50], temp[50];
int x, y, low, high, mid, found = 0;
printf("Enter 10 strings:\n");
for(x = 0; x < 10; x++)
gets(data[x]);
// Sort first (Bubble Sort)
for(x = 0; x < 9; x++) {
for(y = 0; y < 9 - x; y++) {
if(strcmp(data[y], data[y + 1]) > 0) {
strcpy(temp, data[y]);
strcpy(data[y], data[y + 1]);
strcpy(data[y + 1], temp);
}
}
}
printf("Enter string to search: ");
gets(key);
low = 0;
high = 9;
while(low <= high) {
mid = (low + high) / 2;
if(strcmp(data[mid], key) == 0) {
printf("String found at position %d\n", mid + 1);
found = 1;
break;
} else if(strcmp(data[mid], key) > 0)
high = mid - 1;
else
low = mid + 1;
}
if(!found)
printf("String not found.\n");
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char data[10][50], key[50], temp[50];
int x, y, low, high, mid, found = 0;
printf("Enter 10 strings:\n");
for(x = 0; x < 10; x++)
gets(data[x]);
// Sort first (Bubble Sort)
for(x = 0; x < 9; x++) {
for(y = 0; y < 9 - x; y++) {
if(strcmp(data[y], data[y + 1]) > 0) {
strcpy(temp, data[y]);
strcpy(data[y], data[y + 1]);
strcpy(data[y + 1], temp);
}
}
}
printf("Enter string to search: ");
gets(key);
low = 0;
high = 9;
while(low <= high) {
mid = (low + high) / 2;
if(strcmp(data[mid], key) == 0) {
printf("String found at position %d\n", mid + 1);
found = 1;
break;
} else if(strcmp(data[mid], key) > 0)
high = mid - 1;
else
low = mid + 1;
}
if(!found)
printf("String not found.\n");
return 0;
}
5. Find Length of a String (strlen Function)
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len;
printf("Enter a string: ");
gets(str);
len = strlen(str);
printf("Length of string = %d\n", len);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len;
printf("Enter a string: ");
gets(str);
len = strlen(str);
printf("Length of string = %d\n", len);
return 0;
}
6. Copy One String to Another (strcpy Function)
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter a string: ");
gets(str1);
strcpy(str2, str1);
printf("Copied string: %s\n", str2);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter a string: ");
gets(str1);
strcpy(str2, str1);
printf("Copied string: %s\n", str2);
return 0;
}
7. Compare Two Strings (strcmp Function)
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter first string: ");
gets(str1);
printf("Enter second string: ");
gets(str2);
if(strcmp(str1, str2) == 0)
printf("Strings are equal.\n");
else
printf("Strings are not equal.\n");
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter first string: ");
gets(str1);
printf("Enter second string: ");
gets(str2);
if(strcmp(str1, str2) == 0)
printf("Strings are equal.\n");
else
printf("Strings are not equal.\n");
return 0;
}
8. Concatenate Two Strings (strcat Function)
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter first string: ");
gets(str1);
printf("Enter second string: ");
gets(str2);
strcat(str1, str2);
printf("Concatenated string: %s\n", str1);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("Enter first string: ");
gets(str1);
printf("Enter second string: ");
gets(str2);
strcat(str1, str2);
printf("Concatenated string: %s\n", str1);
return 0;
}
9. Reverse a String (strrev Function or Manual Method)
Using strrev() (Turbo C)
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
gets(str);
strrev(str);
printf("Reversed string: %s\n", str);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
gets(str);
strrev(str);
printf("Reversed string: %s\n", str);
return 0;
}
Manual Method (Standard Compilers)
#include <stdio.h>
#include <string.h>
int main() {
char str[100], rev[100];
int x, len;
printf("Enter a string: ");
gets(str);
len = strlen(str);
for(x = 0; x < len; x++)
rev[x] = str[len - x - 1];
rev[len] = '\0';
printf("Reversed string: %s\n", rev);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str[100], rev[100];
int x, len;
printf("Enter a string: ");
gets(str);
len = strlen(str);
for(x = 0; x < len; x++)
rev[x] = str[len - x - 1];
rev[len] = '\0';
printf("Reversed string: %s\n", rev);
return 0;
}
10. Count Vowels, Consonants, and Spaces
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[200];
int x, vowels = 0, consonants = 0, spaces = 0;
printf("Enter a string: ");
gets(str);
for(x = 0; str[x] != '\0'; x++) {
char ch = tolower(str[x]);
if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
vowels++;
else if(ch == ' ')
spaces++;
else if(ch >= 'a' && ch <= 'z')
consonants++;
}
printf("Vowels: %d\nConsonants: %d\nSpaces: %d\n", vowels, consonants, spaces);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[200];
int x, vowels = 0, consonants = 0, spaces = 0;
printf("Enter a string: ");
gets(str);
for(x = 0; str[x] != '\0'; x++) {
char ch = tolower(str[x]);
if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
vowels++;
else if(ch == ' ')
spaces++;
else if(ch >= 'a' && ch <= 'z')
consonants++;
}
printf("Vowels: %d\nConsonants: %d\nSpaces: %d\n", vowels, consonants, spaces);
return 0;
}
11. Count Words in a Sentence
#include <stdio.h>
#include <string.h>
int main() {
char str[200];
int x, count = 1;
printf("Enter a sentence: ");
gets(str);
for(x = 0; str[x] != '\0'; x++) {
if(str[x] == ' ' && str[x + 1] != ' ' && str[x + 1] != '\0')
count++;
}
printf("Total words: %d\n", count);
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str[200];
int x, count = 1;
printf("Enter a sentence: ");
gets(str);
for(x = 0; str[x] != '\0'; x++) {
if(str[x] == ' ' && str[x + 1] != ' ' && str[x + 1] != '\0')
count++;
}
printf("Total words: %d\n", count);
return 0;
}
12. Check if a String is Palindrome
#include <stdio.h>
#include <string.h>
int main() {
char str[100], rev[100];
int x, len;
printf("Enter a string: ");
gets(str);
len = strlen(str);
for(x = 0; x < len; x++)
rev[x] = str[len - x - 1];
rev[len] = '\0';
if(strcmp(str, rev) == 0)
printf("String is Palindrome.\n");
else
printf("String is not Palindrome.\n");
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str[100], rev[100];
int x, len;
printf("Enter a string: ");
gets(str);
len = strlen(str);
for(x = 0; x < len; x++)
rev[x] = str[len - x - 1];
rev[len] = '\0';
if(strcmp(str, rev) == 0)
printf("String is Palindrome.\n");
else
printf("String is not Palindrome.\n");
return 0;
}
No comments:
Post a Comment