我必须编写一个程序,其中的一部分必须能够判断一个单词是否是回文。我的解决方案是这样的:
#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/