c - 如何在主函数中存储函数的返回值。 C语言编程

标签 c function return

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

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

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

最佳答案

有更好的方法来解决这个问题,但是将代码放入函数中......

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;
}

关于c - 如何在主函数中存储函数的返回值。 C语言编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15514553/

相关文章:

始终返回相同 bool 值的 Python 函数

c - Lua C API 和 lua_newuserdatauv 函数中的用户值具体是如何工作的?

c - ANSI C 的可移植类型定义

c - 请求成员 .. 不是结构

c# - 如何将类作为方法的参数传递?

javascript - dataModel URL javascript 函数不填充网格

c - 如何知道数组中有多少个模式段?

javascript - 从复杂函数返回字符串

java - 在 try-catch block 之后返回 null

c - 一个 C 程序,输出 3 个数字的组合,存储在一个数组中