単語が回文かどうかを判断できるプログラムを作成する必要がありました。それに対する私の解決策はこれでした:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define maxLen 100
int main() {
char string[maxLen];
char stringCopy[maxLen];
printf("Please enter a string between 2 and 100 characters\n");
gets(string);
strcpy(stringCopy,string);
strrev(stringCopy);
if(strcmp(string,stringCopy) == 0){
printf("%s is a palindrome\n\n",string);
}
else{
printf("%s is not a palindrome\n\n",string);
}
return 0;
}
現在、関数のみを使用してプログラムを書き直さなければなりません。私は今このようにコードを書こうとしていますが、関数の戻り値の使い方がわからないという問題に遭遇し続けています。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define maxLen 100
int pallindrome(char);
int main(){
int rValue; // return value
char pString[maxLen];
printf("Please enter a string between 2 and 100 characters\n");
gets(pString);
int palindrome(char pString);
rValue = palindrome(char pString);
if(rValue == 0){
printf("%s is a palindrome\n",pString);
}
else{
printf("%s is not a palindrome\n",pString);
}
return 0;
}
int palindrome(char pString){
char string;
string = pString;
char stringCopy;
strcpy(stringCopy,string);
strrev(stringCopy);
if(strcmp(string,stringCopy) == 0){
return 0;
}
else{
return 1;
}
}
ご覧のとおり、palindrome() の戻り値を使用して、何かが回文であるかどうかをユーザーに知らせようとしています。
要約すると、関数からの戻り値をメイン関数内の変数として格納できる方法があるかどうかを知りたいので、そこで作業できます。