#include <stdio.h>
#include <string.h>
/* Function prototypes */
void wordLength ( char *word );
void wordConcat ( char *wordC1, char *wordC2);
int main (void)
{
int choice;
char word [20];
char wordC1 [20];
char wordC2 [20];
printf( "Choose a function by enterting the corresponding number: \n"
"1) Determine if words are identical\n"
"2) Count number of words in sentence provided\n"
"3) Enter two strings to be strung together\n"
"4) Quit program\n" );
scanf( "%d", &choice );
flushall();
while (choice >= 1 && choice < 4)
{
/* if statements for appropriate user prompt and calls function */
if (choice == 1)
{
/* gather user input */
printf( "\nYou have chosen to determine word length.\n"
"Please enter the word:\t");
gets( word );
/* call function to output string as well as the string length */
wordLength( word );
}
else if (choice == 2)
{
printf( "\nYou have chosen to concatenate 2 words with a % symbol in between them.\n"
"Please enter word 1:\t");
gets( wordC1 );
printf("Please enter word 2:\t");
gets( wordC2 );
/* call function to output string as well as the string length */
wordLength( word );
}
}
}
void wordLength( char *word )
{
int length;
printf( "\nThe string entered is: %s\n\n", word);
length = strlen (word);
printf("The string length is: %d\n", length);
return;
}
void wordConcat(char *wordC1, char *wordC2)
{
char symbol = "\ 25";
char result;
printf( "\nThe first word entered is: %s\n", wordC1);
printf( "\nThe second word entered is: %s\n", wordC2);
result = strcat( wordC1, symbol, wordC2);
printf("Output: %s\n", result);
return;
}
プログラムの wordConcat 関数に 2 つの単語を入力するたびに、文字列出力は意味のないものになります :( すべてのポインターが正しい場所を指しているように見えます。何が間違っているのでしょうか?