检查数组中的元素是否为 int 类型
Check if element in an array is of type int
我有这个代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char arr[20];
fgets(arr, sizeof(arr), stdin);
for (int i = 0; i < sizeof(arr); i++)
{
if (arr[i] != /* int */)
{
// do something
}
}
}
我正在尝试遍历一个数组,如果数组中有数字以外的任何内容,我想“做点什么”。
是否可以检查数组中的元素是否为数字?
谢谢。
数字或类型 int(如标题)?
你有一个长度为20的字符串。你如何定义一个数字?一个数字序列?这遍历数组并找到孤立的数字,然后使用 atoi()
和 atof()
进行转换。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void main(void)
{
char arr[20];
fgets(arr, sizeof arr, stdin);
printf("STRING: %s\n", arr);
for (int i = 0; (arr[i]); i++)
{
if (isdigit(arr[i]))
printf("Digit: %c\n", arr[i]);
else
printf("%c\n", arr[i]);
}
printf("atoi: %d\n", atoi(arr));
printf("atof: %f\n", atof(arr));
}
输出:
STRING: -3.1411isnegpi
-
Digit: 3
.
Digit: 1
Digit: 4
Digit: 1
Digit: 1
i
s
n
e
g
p
i
atoi: -3
atof: -3.141100
还有:
STRING: 1e22
Digit: 1
e
Digit: 2
Digit: 2
atoi: 1
atof: 10000000000000000000000.000000
检查字符串中的数字很简单,但提取“数字”则不然。 “1e22”是数字1和22吗? “abc10”是数字吗?
我有这个代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char arr[20];
fgets(arr, sizeof(arr), stdin);
for (int i = 0; i < sizeof(arr); i++)
{
if (arr[i] != /* int */)
{
// do something
}
}
}
我正在尝试遍历一个数组,如果数组中有数字以外的任何内容,我想“做点什么”。
是否可以检查数组中的元素是否为数字?
谢谢。
数字或类型 int(如标题)?
你有一个长度为20的字符串。你如何定义一个数字?一个数字序列?这遍历数组并找到孤立的数字,然后使用 atoi()
和 atof()
进行转换。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void main(void)
{
char arr[20];
fgets(arr, sizeof arr, stdin);
printf("STRING: %s\n", arr);
for (int i = 0; (arr[i]); i++)
{
if (isdigit(arr[i]))
printf("Digit: %c\n", arr[i]);
else
printf("%c\n", arr[i]);
}
printf("atoi: %d\n", atoi(arr));
printf("atof: %f\n", atof(arr));
}
输出:
STRING: -3.1411isnegpi
-
Digit: 3
.
Digit: 1
Digit: 4
Digit: 1
Digit: 1
i
s
n
e
g
p
i
atoi: -3
atof: -3.141100
还有:
STRING: 1e22
Digit: 1
e
Digit: 2
Digit: 2
atoi: 1
atof: 10000000000000000000000.000000
检查字符串中的数字很简单,但提取“数字”则不然。 “1e22”是数字1和22吗? “abc10”是数字吗?