一道简单的字符题

2018-12-04 07:13:50来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

题目:输入一个整数(含负数),输出3个数据:

1.位数

2.拆分输出,空格隔开,其中 “-” 号与第一个数字一起输出

3.输出反转数

例:

输入:

-12345

输出:

5

-1 2 3 4 5

-54321

代码:

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 int main()
 5 {
 6     string str;
 7     int i = 0;
 8     cin >> str;
 9     int size;
10     size = str.length();
11     char *p = new char[size];
12     strcpy(p, str.c_str());
13     if (p[0] == '-')
14     {
15         cout << size - 1 << endl;
16     }
17     else { cout << size << endl; }
18     if (p[0] == '-')
19     {
20         cout << p[0];
21     }
22     for (i = 0; i < size; i++)
23     {
24         if (p[i] >= '0'&&p[i] <= '9')
25         {
26             cout << p[i] << " ";
27         }
28     }
29     cout << endl;
30     if (p[0] == '-')
31     {
32         cout << p[0];
33     }
34     for (i = 0; i < size; i++)
35         {
36             if (p[size - 1 - i] >= '0'&&p[size - 1 - i] <= '9')
37             {
38                 cout << p[size - 1 - i];
39             }
40         }
41     return 0;
42 }

结果:

分析:这样的实现总觉得还可以更简化···有哪位大神可以给个提示吗···

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:利用ZYNQ SOC快速打开算法验证通路(4)——AXI DMA使用解析及环

下一篇:C 存储类