C编程:我需要将长整数(N)传递给函数并返回一个单词(字符串)“有效”或“无效”,但是我正在努力正确地转换值的转换。代码是否由于我需要使用指针而无法正常工作?您能请问我应该如何修改代码,为什么要修改?
#include <stdio.h>
int digitmatch(long N); // function to match the first two digits of the card
int isvalid(long N);
int main()
{
long N;
N = 5212888888881881;
printf("\n digit match: %d",digitmatch(N));
printf("\n validity: %s",isvalid(N));
}
int digitmatch(long N)
{
long digit;
digit = N;
while (digit >= 100)
{
digit /= 10;
}
return digit;
}
char isvalid(long N)
{
char valid[20];
if (digitmatch(N) == 51 || digitmatch(N) == 52)
{
valid = "MasterCard";
}
else
{
valid = "invalid";
}
return valid;
}
非常感谢
In C, strings are of type
const char*
orchar*
, so your function should return that:你可以: 1.将“有效”的声明放在范围之外,并放弃返回/使函数返回成功代码 2.将返回类型设置为char *,因为您返回了一个数组(不确定数组的内容是否仍然存在,因为我们已经超出了声明它的范围) 3.将数组作为指针传递给函数,并在函数内部修改其值(返回0)