c - 从随机数组中提取整数

标签 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();
}

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

最佳答案

此处显示的代码调用了 undefined behaviour .您的代码中的问题:

  1. scanf() 需要一个指针 类型参数来存储扫描值。
  2. %s 用于strings%c 用于char
  3. 对于 %c\n 不会被忽略。因此,您必须像 "%c" 一样使用它来避免尾随 换行符

但是,我没有看到任何“从随机数组中提取唯一整数”的逻辑。您可能需要再次检查您的逻辑。

注意事项:

  • main() 的推荐签名是int main(void)
  • 始终初始化所有局部变量。

关于c - 从随机数组中提取整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30215728/

相关文章:

c - 在C中的多个源文件中包含头文件

C 使用 scanf() 进行 |分隔字符串

Linux 上的计算时间 : granularity and precision

c++ - 将单个字节从 Enum 附加到 NSMutableData

C 的格式说明符

c - 直接连接bittorrent转C或Ruby libtorrent

Codevision AVR 使用 TWI 访问外部 eeprom 24c02B

C:使用 scanf() 函数而不是 gets

C联盟复制内存

c - 无法使用 CMake 错误构建 GLFW