0

我必须编写一个程序,其中的一部分必须能够判断一个单词是否是回文。我对此的解决方案是:

#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() 的返回值来让用户知道某物是否是回文。

总而言之,我想知道是否有一种方法可以将函数的返回值存储为主函数中的变量,以便在那里使用它。

4

2 回答 2

1

有更好的方法来解决这个问题,但是把你的代码放到一个函数中......

int palindrome(char* string)
{
    char stringCopy[maxLen];
    strcpy(stringCopy,string);
    strrev(stringCopy);
    return strcmp(string,stringCopy) == 0;
}
int main() 
 {
    char string[maxLen];
    printf("Please enter a string between 2 and 100 characters\n");
    gets(string);

    if(palindrome(string)){
       printf("%s is a palindrome\n\n",string);
    }
    else{
       printf("%s is not a palindrome\n\n",string);
    }
    return 0;
}

如果你想把它放入一个变量中,你可以这样做

int main() 
 {
    char string[maxLen];
    int result;
    printf("Please enter a string between 2 and 100 characters\n");
    gets(string);

    result = palindrome(string);
    if(result){
       printf("%s is a palindrome\n\n",string);
    }
    else{
       printf("%s is not a palindrome\n\n",string);
    }
    return 0;
}
于 2013-03-20T03:14:28.857 回答
0

你的回文函数是错误的。您只是传递一个字符而不是字符串。为了传递字符串,函数参数应该像char *pStringor char pString[]。复习该语言的基础知识并开始编码。

于 2013-03-20T03:37:31.207 回答