我有输入整数、cahr、符号随机数组。我只想从该数组中提取整数。
例如:输入为[@56gY68#$&*+7j^78gu5];
输出为 56 68 7 78 5
这是我的代码:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
void main()
{
char arr[10];
int arr1[10],i;
clrscr();
for(i=0;i<10;i++)
{
scanf("%s",arr[i]);
}
for(i=0;i<10;i++){
if(isdigit(arr[i])){
arr1[i]=arr[i];
}
}
for(i=0;i<10;i++){
printf("%d",arr1[i]);
}
getch();
}
代码无法提取整数。我需要更改什么?
最佳答案
此处显示的代码调用了 undefined behaviour .您的代码中的问题:
scanf()
需要一个指针 类型参数来存储扫描值。%s
用于strings,%c
用于char
。- 对于
%c
,\n
不会被忽略。因此,您必须像"%c"
一样使用它来避免尾随 换行符。
但是,我没有看到任何“从随机数组中提取唯一整数”的逻辑。您可能需要再次检查您的逻辑。
注意事项:
main()
的推荐签名是int main(void)
。- 始终初始化所有局部变量。
关于c - 从随机数组中提取整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30215728/