从随机数组中提取整数

时间:2015-05-13 13:06:06

标签: c

我输入整数,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();
}

代码无法提取整数。我需要改变什么?

1 个答案:

答案 0 :(得分:3)

此处显示的代码调用undefined behaviour。代码中的问题:

  1. scanf()需要指针类型参数来存储扫描值。
  2. %s适用于字符串%c适用于char
  3. 对于%c\n 被忽略。因此,您必须像" %c"一样使用它来避免尾随换行符
  4. 但是,我没有看到“从随机数组中提取只有一个整数”的逻辑。您可能需要再次检查逻辑。

    注意:

    • main()的推荐签名为int main(void)
    • 始终将所有本地变量初始化。
相关问题