Code:
#include <stdio.h>
#include <ctype.h>
#define MAX 100
#define LETTERS 26
//void initialize(int intarray[]);//initializes strings probably
//char *gets_s(char s[], int num);, terminates a string with \0
void getString(char string1storage[], char string2storage[]);
void setLetters(char string1storage[], int intarray[]);
void checkLetters(char string2storage[], int intarray[]);
void main(void)
{//strings need2be initialized with anagram first?
char string1storage[MAX], string2storage[MAX];//stores anagrams
int intarray[LETTERS] = {0};
//initialize(); //maybe call him after getstring?
getString(string1storage, string2storage);
setLetters(string1storage, intarray);
checkLetters(string2storage, intarray);
}
/*void initialize(intarray[])
{
intarray[]={0};
}*/
void getString(char string1storage[], char string2storage[])
{
printf("Please enter a word or phrase");
gets_s(string1storage, MAX - 1);
printf("Please enter a second word or phrase");
gets_s(string2storage, MAX - 1);
}
void setLetters(char string1storage[], int intarray[])//runs through all characters in string1storage and updates the letter count in intarray
{
int index, indexforintarray;
//char ch;
/*index = 0;
while(string1storage[index])
{//isalpha returns true if lower/uppercase letter
if(isalpha(string1storage[index]))//if true
string1storage[index] = '\0';//"skip or delete whatever inside there", i'm stuck, i'm intending to delete or ignore non-alphabet chars in the array
//use null^?
index++;
}
printf("%s\n", string1storage);*/
index = 0;
//printf("%d\n", isalpha(string1storage[0]));
while(string1storage[index])
{
string1storage[index] = tolower(string1storage[index]);
index++;
}
indexforintarray = 0;
index = 0;
while(string1storage[index])//for(index = 0; index != '\0'; index++)//use on string1storage
{
indexforintarray = (int) (string1storage[index] - 'a');
//intarray[indexforintarray] = string1storage[index];//wtf is this
if(indexforintarray >= 0 && indexforintarray <= 25)//probably ignores .!123*+ etc., makes isalpha unneeded
intarray[indexforintarray]++;
index++;
}
/*printf("testing %s\n", string1storage);
printf("testing %d\n", intarray);
printf("testing %s\n", intarray); */
}
void checkLetters(char string2storage[], int intarray[])
{
int indexforintarray, lettermatch, index;
index = 0;
//printf("%d\n", isalpha(string1storage[0]));
while(string2storage[index])
{
string2storage[index] = tolower(string2storage[index]);
index++;
}
indexforintarray = 0;
index = 0;
while(string2storage[index])//for(index = 0; index != '\0'; index++)//use on string1storage
{
indexforintarray = (int) (string2storage[index] - 'a');
//intarray[indexforintarray] = string1storage[index];//wtf is this
if(indexforintarray >= 0 && indexforintarray <= 25)//probably ignores .!123*+ etc., makes isalpha unneeded
intarray[indexforintarray]--;
index++;
}
lettermatch = 0;
for(indexforintarray = 0; indexforintarray < 26; indexforintarray++)
{
if(intarray[indexforintarray] > 0)//avoids adding negative numbers
lettermatch+=intarray[indexforintarray];
}
if(lettermatch == 0)
printf("Your inputs are anagrams");
else
printf("Your inputs are not anagrams");
}
i dont understand why my setletters output isn't showing in the program
postedit:edited the code twice sorry, works perfectly now, but i want to integrate the initialize function in my program now for usage.