Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //checks if two words are anagrams. returns 0 if yes, 1 if not an anagram. assumes 2 inputs
- //without any whitespace characters
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- void bubble_sort(char [], int);
- void lowercase(char [], int);
- int main (int argc, char *argv[]) {
- int len1 = strlen(argv[1]);
- int len2 = strlen(argv[2]);
- if (len1 != len2) return 1; //return 1 if the lengths are not equal (not an anagram)
- else {
- //convert all letters to lowercase
- lowercase(argv[1], len1);
- lowercase(argv[2], len2);
- //sort arrays using bubble sort
- bubble_sort(argv[1], len1);
- bubble_sort(argv[2], len2);
- if (strcmp(argv[1], argv[2]) == 0) return 0; //anagram if two sorted strings are equal
- else return 1; //not an anagram if not
- }
- }
- void bubble_sort(char array[], int len) {
- //sorts an array using bubble sort (in ascending order)
- for (int i = 0; i < len-1; i++) {
- for(int j = 0; j < len-1-i; j++) {
- if (array[j] > array[j+1]) {
- //swap array[j] and array[j+1]
- char temp = array[j];
- array[j] = array[j+1];
- array[j+1] = temp;
- }
- }
- }
- }
- void lowercase(char string[], int len) {
- //takes a given string of length len and converts all letters
- // into lowercase (upto 100 non-whitespace chars)
- for (int i = 0; i < len; i++) {
- if (isalpha(string[i])) {
- string[i] = tolower(string[i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement