类型转换函数实现提取出数字字符变数字

来源:互联网 发布:工行软件开发薪酬 编辑:程序博客网 时间:2024/05/22 12:54
/*建立一个类 String_Integer,把一个字符串中的数字字符转换为正整数。具体要求如下:(1)私有数据成员 char *s:用动态空间存放字符串。(2)公有成员函数   String_Integer(char *str):用参数 str 初始化数据成员 s。   operator int():转换函数,数据成员 s 转换整数并返回该数。   void show():输出数据成员 s。   ~String_Integer():释放动态空间。(3)在主函数中对定义的类进行测试。定义字符数组,把由键盘输入的字符串“ab12  3c00d45ef”存入数组,并用该数组初始化类 String_Integer 的对象 test,调用 show 函数输出 test 的数据成员 s,然后把对象 test 赋值给整型变量 n 并输出,转换结果如下所示(下划线部分是从键盘输入的内容):          请输入字符串 ab12  3c00d45ef :ab12  3c00d45ef         字符串为:ab12  3c00d45ef转换得到的整数为:1230045*/#include<iostream>using namespace std;class string_int{private:    char *s;public:    string_int(char *str);    operator int();    void show();    ~string_int();};string_int::string_int(char *str){    s = new char;    s = str;}string_int::operator int(){    char *ptr=s;    int n = 0;    while (*ptr)  //必须嵌套while循环在外,保证指针移动    {        if (*ptr<='9'&&*ptr>='0')  //必须用if,如果用while的话会导致死循环;“<=”“>=”少不了‘=’号,否则边界不容        {            n *= 10;            n += (*ptr - '0');        }        ptr++;    }    return n;}void string_int::show(){    cout << s << endl;}string_int::~string_int(){    delete s;}int main(){    char a[] = "ab12  3c00d45ef";    string_int test(a);    test.show();    int num = test;    cout << num << endl;    system("pause");    return 0;}
阅读全文
0 0
原创粉丝点击