0

Hi, iam writing a pig latin program with 3 different methods

i dont knw understand the error that iam gettin in the code

here's the code:

#include <stdio.h>                 /*Include the standard I/0 header file */
#include <string.h>                /*Include the standard I/0 header file string library */

//The functions that are meant to be defined
char* toPLString(char * inputstring); 
int getInputBygetChar(char input[]);
int getInputByfgets(char input[]);
int getInputByscanf(char input[]);

       
int main(int argc, char *argv[]){
    char phrase[1000];
    char *token;
    printf("%s", getInputByscanf);
    printf("The sentence in Pig Latin is: ");
    token = strtok(phrase, " ");
    toPLString(token);
    printf("\n");

    system("Pause");
    return 0;
}
//method to convert to Pig Latin
char* toPLString(char * inputstring){
     char *toPLString = inputstring;
     while (toPLString != NULL){
           printf("%s%c%s", toPLString + 1, toPLString[0], "ay ");
           toPLString = strtok(NULL, " ");
           printf(" ");
     }
}

//Method to to read a string from keyboard and return number of characters read.
getInputBygetChar(char input[]){

}

//Method that uses the fgets method to read a string from keyboard and return number of characters read.
int getInputByfgets(char input[]){
    
}

/*Method that uses the scanf method to read a string from keyboard and return number of characters read.
*Scanf reads a character string. The scan terminates at whitespace. A null character is stored at the end
of the string. However, the input string size from a user is arbitrary.*/
int getInputByscanf(char input[]){
     char phrase;
     printf("\nEnter the phrase to translate: ");
     scanf("%s", &phrase);
     return 0;

    
}

i dont understand y its giving me the address output, i need to implement this method correctly, can some1 help me plzz...

5
Contributors
8
Replies
9
Views
8 Years
Discussion Span
Last Post by stilllearning
0

alrite, cheers, here is the proper code

#include <stdio.h>                 /*Include the standard I/0 header file */
#include <string.h>                /*Include the standard I/0 header file string library */

//The functions that are meant to be defined
char* toPLString(char * inputstring); 
int getInputBygetChar(char input[]);
int getInputByfgets(char input[]);
int getInputByscanf(char input[]);

       
int main(int argc, char *argv[]){
    char phrase[1000];
    char *token;
    printf("%s", getInputByscanf);
    printf("The sentence in Pig Latin is: ");
    token = strtok(phrase, " ");
    toPLString(token);
    printf("\n");

    system("Pause");
    return 0;
}
//method to convert to Pig Latin
char* toPLString(char * inputstring){
     char *toPLString = inputstring;
     while (toPLString != NULL){
           printf("%s%c%s", toPLString + 1, toPLString[0], "ay ");
           toPLString = strtok(NULL, " ");
           printf(" ");
     }
}

//Method to to read a string from keyboard and return number of characters read.
getInputBygetChar(char input[]){

}

//Method that uses the fgets method to read a string from keyboard and return number of characters read.
int getInputByfgets(char input[]){
    
}

/*Method that uses the scanf method to read a string from keyboard and return number of characters read.
*Scanf reads a character string. The scan terminates at whitespace. A null character is stored at the end
of the string. However, the input string size from a user is arbitrary.*/
int getInputByscanf(char input[]){
     char phrase;
     printf("\nEnter the phrase to translate: ");
     scanf("%s", &phrase);
     return 0;

    
}
0

Ok, what were you trying acomplish with this:
>printf("%s", getInputByscanf);

First, that getInput... is function, so you have to call it with "()" brackets.
But still, it's nonesence

0

And there is a problem is getInputByscanf() function!
HINT: you can't assing string (%s) to char!
What is char input[] for?

0

i still dont get it, i'm calling getInputByscanf() in the main method, bt im not getting a correct output, iam getting some wierd output...

0

That's because of my other post. You don't do nothing with string that you pass to that function.

0

Hi,
Its all done wrong, have given the comments inside...

#include <stdio.h>                 /*Include the standard I/0 header file */
#include <string.h>                /*Include the standard I/0 header file string library */
 
//The functions that are meant to be defined
char* toPLString(char * inputstring); 
int getInputBygetChar(char input[]);
int getInputByfgets(char input[]);
int getInputByscanf(char input[]);
 
 
int main(int argc, char *argv[]){
    char phrase[1000];
    char *token;

/* Calling this function getInputByscanf will not get you back the string read from that function. The function call is wrong, the argument is missing */

printf("%s", getInputByscanf);

    printf("The sentence in Pig Latin is: ");

/* You are trying to strtok the string phrase[] which has nothing in it at this point */

token = strtok(phrase, " ");
    toPLString(token);
    printf("\n");
 
    system("Pause");
    return 0;
}
//method to convert to Pig Latin
char* toPLString(char * inputstring){
     char *toPLString = inputstring;
     while (toPLString != NULL){
           printf("%s%c%s", toPLString + 1, toPLString[0], "ay ");
           toPLString = strtok(NULL, " ");
           printf(" ");
     }
}
 
//Method to to read a string from keyboard and return number of characters read.
getInputBygetChar(char input[]){
 
}
 
//Method that uses the fgets method to read a string from keyboard and return number of characters read.
int getInputByfgets(char input[]){
 
}
 
/*Method that uses the scanf method to read a string from keyboard and return number of characters read.
*Scanf reads a character string. The scan terminates at whitespace. A null character is stored at the end
of the string. However, the input string size from a user is arbitrary.*/
int getInputByscanf(char input[]){
     char phrase;
     printf("\nEnter the phrase to translate: ");

/* phrase is a cahracter and not a string, using %s is incorrect. More over this variable is local to this function it will not be reflected back to the called function */

scanf("%s", &phrase);
     return 0;
0

this is interesting

char* toPLString(char * inputstring){
     char *toPLString = inputstring;
     ....
}

your function and your pointer have the same name :?:

and the end of your string is '\0' not NULL.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.