中易网

输入一串由数字与运算符组成的字符串,请将字符串中的数字和运算符分割开分别储存在两个数组中

答案:3  悬赏:0  
解决时间 2021-03-03 00:55
输入一串由数字与运算符组成的字符串,请将字符串中的数字和运算符分割开分别储存在两个数组中
最佳答案

#include 
#include 
#include 

int main(void)
{
    const char *ss = "12.5+31.66*88.95/56.54%26.77-19.94";  //测试数组;
    const size_t len = strlen(ss);    
    char num[len+1] = {0};  //储存数字(包含小数);
    char sym[len+1] = {0};  //储存运算符号;
    
    for(int i = 0, j = 0, k = 0; i < len + 1; ++i)
    {
        if(isdigit(ss[i]) || ss[i] == '.')
            num[j++] = ss[i];
        else
        {
            num[j++] = ' ';
            sym[k++] = ss[i];
        }
    }
    
    printf("%s
%s
",num,sym);
    return 0;
}追答
追问:不是的不过还是谢谢啦
追答:那你要怎样的?直接变成数字的?
追问:一串浮点型常数和运算符的字符串分开浮点型常数和运算符分别存入两个数组中
追答:#include 
#include 
#include 
#include 
 
int main(void)
{
    char ss[] = "12.5+31.66*88.95/56.54%26.77-19.94";  //测试数组;
    const size_t len = strlen(ss);    
    char num[len+1] = {0};  //储存数字字符;
    char sym[len+1] = {0};  //储存运算符号;
    double number[len] = {0};  //储存小数;
     
    for(int i = 0, j = 0, k = 0; i < len + 1; ++i)
    {
        if(isdigit(ss[i]) || ss[i] == '.')
            num[j++] = ss[i];
        else
        {
            num[j++] = ' ';
            sym[k++] = ss[i];
        }
    }
    
    int i = 0;
    char *p1 = num;
    char *p2 = NULL;
    
    while(1)
    {
        number[i++] = strtod(p1,&p2);
        
        if(p1 == p2)
            break;
            
        p1 = p2;
    }
        
    for(int i = 0; number[i] != 0; ++i)
        printf("%lf  ",number[i]);
    
    printf("
%s
",sym);    
    return 0;
}
全部回答
很简单呀,分分钟追答
追问:大神求教大神能给点提示吗 我会感激不尽的
追答:字符串逐个扫描呀,和把一个字符串里面所有英文单词打印出来一回事
追问:现在主要的问题是 我不知道如何分割出浮点型的常数和运算符 是要调用高数吗?是要调用函数吗?求指教
追答:有个函数叫atof,你去查一下
追问:用过了我的程序然后直接就出问题了
追答:不能直接去转的,要先拆分
追问:我用的就是循环结构分别去判断然后才用的可是结果不对
追答:调用atof的字符串最后加字符串结束标记了么?
首先你把字符串都看成字符,
第二,数字的字符是有限的:0-9 .
第三,运算符和数字是一样的。
按字符把运算符分开就可以了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
十堰市那里有专业学美甲的 学费大概要多少钱
公安局里什么类别的警察不用按时上下班,然后
EXCEL 怎么在图标X轴两侧添加不一样的数据?
单县羊汤(266乡道)怎么去啊,有知道地址的么
我该把图片放到手机里的哪个文件夹
嘴巴上火起泡了怎么办?
地暖能不能同时洗澡和制热
虎旺铁板烧地址在什么地方,想过去办事
冶安管理处罚法盗窃惩罚多久
诗雅化妆地址在哪,我要去那里办事
普通热转印标和硅胶热转印标有什么区别?
日语后面加n是什么用法?
设A B C是三个相互独立的随机事件,且0<P(C)<
茶屿在什么地方啊,我要过去处理事情
梦见挖水井挖出水来
推荐资讯
利用电桥平衡法测量电阻的仪器是不是每次都形
鼠标拉动我的电脑有很多重影我的电脑怎么回事
药店门口为什么放免费体重计?
CSGO进不去的问题
辅助核算科目主要包括( )科目
拍婆子、泡妞、嗅蜜,都分别是啥意思?
现在成考需要高中文凭吗
我想在昆明开个大货车修理店什么地方最好?
火沙辅线/X025(路口)地址有知道的么?有点事
关于假如生话欺骗了你的材料作文,要求记叙文
福建华南电脑学校福州校区怎么样?
钱咖可以赚钱吗?是骗人吗?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?