在C中一次将数字放入数组中
Putting numbers inside array at once in C
我正在努力寻找这个问题的答案:我希望能够控制信用卡号(比如“378282246310005”)是否满足特定条件(f.e。它是否以号码开头3).
我希望能够一次输入完整的数字,然后检查数字中的特定位置(f.e。每秒)。但是,我只是在一个接一个地输入它们时才设法将它们放入一个数组中,这很烦人:
int main()
{
int user_input[5];
int i;
for(i=0;i<5;i++)
{
printf("Credit Card Number Digit %d\n",i+1);
scanf("%d",(user_input+i));
}
if(user_input[0] == 5)
printf("MASTERCARD\n");
else
printf("INVALID\n");
return 0;
}
我建议将一个字符串扫描到一个 char
的数组中,然后访问这个数组。该技术包含在此 Wikipedia article 中,可以在其中找到以下代码。
#include <stdio.h>
int main()
{
char word[20];
if (scanf("%19s", word) == 1)
puts(word);
return 0;
}
片段读取数组 word
中的一个字符串,可以像您的问题一样访问它。显然,字符串的最大长度可以作为格式字符串中的参数给出。
只需检查输入的每个数字并忽略任何非数字输入,例如
int main()
{
int user_input[16];
int digits = 0;
while (digits < 16)
{
int c = getchar(); // get character
if (c == EOF) break; // break on EOF
if (isdigit(x)) // if character is numeric
{ // convert it to int and append to user_input array
user_input[digits++] = c - '0';
} // (otherwise just ignore it)
}
if (digits > 0 && user_input[0] == 5)
{
printf("MASTERCARD\n");
}
else
{
printf("INVALID\n");
}
return 0;
}
我正在努力寻找这个问题的答案:我希望能够控制信用卡号(比如“378282246310005”)是否满足特定条件(f.e。它是否以号码开头3).
我希望能够一次输入完整的数字,然后检查数字中的特定位置(f.e。每秒)。但是,我只是在一个接一个地输入它们时才设法将它们放入一个数组中,这很烦人:
int main()
{
int user_input[5];
int i;
for(i=0;i<5;i++)
{
printf("Credit Card Number Digit %d\n",i+1);
scanf("%d",(user_input+i));
}
if(user_input[0] == 5)
printf("MASTERCARD\n");
else
printf("INVALID\n");
return 0;
}
我建议将一个字符串扫描到一个 char
的数组中,然后访问这个数组。该技术包含在此 Wikipedia article 中,可以在其中找到以下代码。
#include <stdio.h>
int main()
{
char word[20];
if (scanf("%19s", word) == 1)
puts(word);
return 0;
}
片段读取数组 word
中的一个字符串,可以像您的问题一样访问它。显然,字符串的最大长度可以作为格式字符串中的参数给出。
只需检查输入的每个数字并忽略任何非数字输入,例如
int main()
{
int user_input[16];
int digits = 0;
while (digits < 16)
{
int c = getchar(); // get character
if (c == EOF) break; // break on EOF
if (isdigit(x)) // if character is numeric
{ // convert it to int and append to user_input array
user_input[digits++] = c - '0';
} // (otherwise just ignore it)
}
if (digits > 0 && user_input[0] == 5)
{
printf("MASTERCARD\n");
}
else
{
printf("INVALID\n");
}
return 0;
}