Hi,
My assignment is on this website http://k4shif.netfirms.com/review.html
I have written the code, exactly like the pseudo code provided, and is heavily commented with my thought process....but for some reason it does not do its job....i am posting the code, any help will be greatly appreciated coz this is due tomm...once again thanks
Code:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>

void translateline(char [], char []);
int extractintoew(char [], char [],int);
void convertintopig(char [], char [] );
int wherevowel(char []);
int copyintopl(char [], char [],int);

int main()
{
	char el[100]={'\0'},pl[200]={'\0'};
	int a=0;
	

	printf("Please enter a line(# to end): ");
	gets(el);

	while(el[0]!='#')
	{
		translateline(el,pl);
		puts(pl);

		

		printf("\nPlease enter a line(# to end): ");
		fflush(stdin);
	    gets(el);
	}

	printf("Good Bye. Oodgay Ebyay\n");
	system("PAUSE");
	return 0;
}

void translateline(char el[], char pl[])
{
	char ew[17]={'\0'},pw[17]={'\0'};
	int ep=0,pp=0,k=0,r;

	while(el[ep]!='\0')
	{
		if(isalpha(el[ep]))
		{
			k=extractintoew(el,ew,ep);
			ep+=k;//this is to keep everything at par, so even here, one behind space or punct
			convertintopig(ew,pw);//copies the contents of pw into pl, pp at this point is still 0
			r=copyintopl(pw,pl,pp);//this will return the value of pp, as to where it is in pl so that we can put the punct or space
			pp+=r;//now pp is set at before that point
			pp--;//now it is set for pp++
			pp++;//now ready to accept punct or space position
			ep++;//now at punct or space position
		}
		else
		{
			if(isspace(el[ep]))
			{
				el[ep]=pl[pp];
			}
			else
			{
				el[ep]=pl[pp];
				strcat(pl," ");//after punctuation put a space
			}
		

			
		}
		
	}
	pl[pp]='\0';//setting the last value to null as this is required by the output function
	
}//complete

int extractintoew(char el[],char ew[],int ep)
{
	int i=0;

	while(isalpha(el[i]))
	{
		ew[i]=el[ep];
		i++;
		ep++;
	}
    return ep;//ep at this point is one place behind the space or punctuation and returns that number to 
}//completed

void convertintopig(char ew[], char pw[])
{
	int y,m;

	y=wherevowel(ew);//incomplete at this point

	if(y==0||y==(-1))//this indicates if it begins with a vowel, or has no vowel at all
	{
		strcat(ew,"way");
		strcpy(pw,ew);
	}
	else
	{
		m=strlen(ew);//calculate the length of the string;
		memmove(ew,&ew[y],m-y);// m-y indicates that number of alphabets to move
		strcat(ew,"ay");
		strcpy(pw,ew);//now pw, has the word with the vowels moved back, and truncated with "ay"
	}
}//completed

int wherevowel(char ew[])
{
	int j;
	char *vowel="aeiou";

	if(ew[0]=='a'||ew[0]=='e'||ew[0]=='i'||ew[0]=='o'||ew[0]=='u')
	{
		j=0;
		return j;
	}

	if(ew[0]=='A'||ew[0]=='E'||ew[0]=='I'||ew[0]=='O'||ew[0]=='U')
	{
		j=0;
		return j;
	}

	else
	{
		j=strcspn(ew,vowel);

		if(j==0)
		{
			j=(-1);
			return j;
		}
		else return j;//this value here has the place where j occurs
	}
}//completed

int copyintopl(char pw[], char pl[], int pp)
{
	int a=0;
	int b;//declared for strlen of pl
	b=strlen(pw);

	while(a<b-1)
	{
		pw[a]=pl[pp];
		a++;
		pp++;
	}

	return pp;
}//completed