题解 | #实现简单计算器功能#

实现简单计算器功能

https://www.nowcoder.com/practice/e7c08272a4b7497fb990ce7abb1ee952

刚开始我的做法
#include <iostream>
using namespace std;
 
int main() {
 
    char str[100] = { 0 };
    cin.getline(str, sizeof(str));
 
    // write your code here......
    string s(str);
    string arr[3];
    int count = 0, tem;
    int i = 0;
    while((tem = s.find(' ', count)) != s.npos){
        arr[i].assign(s, count, tem);
        count = tem + 1;
        i++;
    }
    arr[i].assign(s, count);
    int a, b;
    a = atoi(arr[1].c_str());
    b = atoi(arr[2].c_str());
    if(arr[0] == "add")
        cout<< a + b <<endl;
    else if(arr[0] == "sub")
        cout<< a - b <<endl;
    else if(arr[0] == "mul")
        cout<< a * b <<endl;
    else if(arr[0] == "div")
        if(b == 0)
            cout<<"Error"<<endl;
        else
            cout<<a/b<<endl;
     
      
    return 0;
}



#include <iostream>
#include <cstring>
#include <string>
using namespace std;

int main() {

    char str[100] = { 0 };
    cin.getline(str, sizeof(str));

    // write your code here......
    string s(str);
    char * arr[30] = {str, nullptr};

    int i = 0;
    //大佬做法:
     while ((arr[i] = strtok(arr[i], " ")) && ++i);
    int a, b;
    a = atoi(arr[1]);
    b = atoi(arr[2]);
    string tem(arr[0]);
    if(tem == "add")
        cout<< a + b <<endl;
    else if(tem == "sub")
        cout<< a - b <<endl;
    else if(tem == "mul")
        cout<< a * b <<endl;
    else if(tem == "div")
        if(b == 0)
            cout<<"Error"<<endl;
        else
            cout<<a/b<<endl;
    
     
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务