求助,输入数字并过滤其中的符号和字母

袁嘉泽i 2020-07-09 09:39:04
输入几个字符只保留数字与小数点‘.’,比方说输入1.2和 3.b4,,输出1.2和3.4.,并能把他们排序
...全文
343 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simple-Soft 2020-07-09
  • 打赏
  • 举报
回复
一个一个检查,如果不是数字和小数点就忽略
袁嘉泽i 2020-07-09
  • 打赏
  • 举报
回复
感谢各位,我试一下,不会回复楼层
自信男孩 2020-07-09
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <ctype.h>
#include <string.h>

#define MAX_INPUT_SIZE 128

char *del_char(char *str);

int main(void)
{

char input[MAX_INPUT_SIZE];
float num;

fgets(input, MAX_INPUT_SIZE, stdin);

del_char(input);
puts(input);
sscanf(input, "%f", &num);


printf("%f\n", num);
return 0;
}

char *del_char(char *str)
{
char *tmp, *back_str;

tmp = back_str = str;
while (*str) {
if (isdigit(*str) || *str == '.')
*tmp++ = *str;
str++;
}
*tmp = 0;

return back_str;
}

供参考~

一个一个输入,多个可以考虑加循环
  • 打赏
  • 举报
回复
没有配套的代码,但可以给你一个类似的参考代码,只需要在此基础上做些修改就可以了. 如果你还想了解其他的一些常见类型题,可以查看一下这篇文章https://blog.csdn.net/HYNN12/article/details/102610626,希望对你有所帮助.

#include <stdio.h>
int main(int argc, const char * argv[]) {
    int num_digital = 0;
    int num_char = 0;
    int num_space = 0;
    int i;
    char c[100] = "faj f afhka123";
    //gets(c);
    for (i=0; i<100; i++) {
        if (c[i] == ' ') {
            num_space ++;
        }
        if ((c[i] >= 'A' && c[i] <= 'Z')|| (c[i] >= 'a' && c[i] <= 'z')) {
            num_char ++;
        }
        if (c[i] >= '0' && c[i] <= '9') {
            num_digital ++;
        }
    }
    printf("数字个数是%d\n字母个数是%d\n空格个数是%d\n",num_digital,num_char,num_space);
return 0;
}
————————————————
版权声明:本文为CSDN博主「知之、行之、思之」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HYNN12/article/details/102610626

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧