Here is a program with Strings where I am trying Pig Latin translation is simply taking the first letter of a “word” and appending that letter to the end of the word with “ay” added to the end as well
I have issue with m1=m2+3 ( resetting the Initial Marker ).
Input that I am giving : "Alex, how are you right"
The output I am expecting is : lexay, owhay reay ouyay ightray
But
I am getting this : lex,Aay way ay ayo gayi
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void initialize(char english[], char piglatin[]);
void readinput (char english[]);
int countwords(char english[]);
void convert ( int words, char english[], char piglatin[]);
void writeoutput( char piglatin[]);
int main()
{
    char english[80], piglatin[80];
    int words;
    initialize(english, piglatin);
    printf("enter the string\t");
    fflush(stdin);
    gets(english);
    printf ("\nInput buffer contents:  %s\n", english);
    words = countwords(english);
    convert(words,english,piglatin);
    writeoutput(piglatin);
    printf ("Have a nice day\n");
}
void initialize(char english[], char piglatin[])
{
    int count;
    for(count =0; count<80;++count)
    {
        english[count]=piglatin[count]=' ';
    }
    return;
}
/* Scan the english test and determine the number of words */
int countwords(char english[])
{
    int count, words =1;
    for ( count =0;count <79;++count)
    {
        if(english[count]==' ' && english[count+1]!=' ')
        ++words;
    }
    printf("%d\n",words);
    return (words);
}
/* convert each words in to piglatin*/
void convert ( int words, char english[], char piglatin[])
{
    int n, count;
    int m1=0;
    int m2;
    /* convert each word */
    for ( n=1;n<=words;++n)
    {
        /* locate the end of the current word*/
        count = m1;
        printf ("\ before conversion word contents:  %d\n", count);
        while ( english[count]!=' ')
        {
            m2=count++;
        }
        printf ("\ before conversion word contents:  %d\n", m2);
            /* transpose the first letter and add 'a', 'y'*/
        for (count =m1;count<m2;++count)
        {
            piglatin[count+(n-1)]=english[count+1];
        }
        piglatin[m2+(n-1)] = english[m1];
        piglatin[m2+1] = 'a';
        piglatin[m2+2] = 'y';
        m1=m2+3;
        printf ("\ Converted word contents:  %s\n", piglatin);
    }
    return;
}
void writeoutput( char piglatin[])
{
    int count =0;
    for (count =0; count <80; ++count)
    {
        putchar(piglatin[count]);
    }
    printf ("\n");
    return;
}
 
    