C、C++代码格式优化软件---献给编程爱好者

简介:

当题目不会做或者算法实现不了时,我们很自然地去网上搜代码,但是网上的代码排版太乱,根本不遵循代码规范,举个例子:大家可以点击这个链接http://tieba.baidu.com/f?kz=825544513,,这里有个代码,

 

复制代码
#include<iostream>
#include<string.h>
using namespace std;
int main()
{ char a[100],b[1000];
int k,i,j,t=0,la,lb;
scanf("%d",&k);
while(t<k)
{
scanf("%s",a);
scanf("%s",b);
printf("Case %d:\n",++t);
printf("%s + %s = ",a,b);
la=strlen(a);
lb=strlen(b);
char c[1000];
if(la<lb)
{ strcpy(c,a); strcpy(a,b); strcpy(b,c);
int c=la; la=lb; lb=c;
}
for(i=0;i<la/2;++i)
{ int c=a[i]-48;
a[i]=a[la-i-1]-48;
a[la-i-1]=c;
}
if(la&1) a[la/2]-=48;
for(j=0;j<lb/2;++j)
{ int c=b[j]-48;
b[j]=b[lb-j-1]-48;
b[lb-j-1]=c;
}
if(lb&1) b[lb/2]-=48;
bool flag=0;
for(i=lb;i<=la;++i)
b[i]=0;
for(i=0;i<la;++i)
{
c[i]=a[i]+b[i]+flag;
flag=c[i]/10; c[i]=c[i]%10;
}
if(flag) cout<<1;
for(i=la-1;i>=0;--i)
printf("%d",c[i]);
cout<<endl;
if(t!=k)
cout<<endl;
}
return 0;
}
复制代码

怎么样??这种代码一看就心烦,一点格式都没有,他提问都一年多了,,都没人回答,估计就是这个原因。
但是,如果这是我们需要的代码怎么办??一点一点地补齐空格,相当麻烦,如果代码再长点呢,几百上千行,估计没人会有耐心再看这个代码
这就是问题的由来。为了解决这个问题,我专门写了这个软件,如果仅仅是缩进,这个简单,我想,,既然写了,就把它完善到最好。以后我们进了软件公司,估计首先得到的就是一份代码规范(关于代码规范,大家可以到这个网站看一下http://wenku.baidu.com/view/f6a3341dfc4ffe473368abce.html)代码规范很重要,因为在公司里,大部分时间是用来看别人的代码,如果写成一堆乱麻,公司怎么会要你??有一个不规范的地方扣100元钱,估计工资都扣没了。有些人写代码写了好几年了,习惯不能一下子改过来,怎么办?为了规范再去检查代码吗?哈哈,我的软件就派上用场了,你只要用我的软件一优化,立马丑小鸭变天鹅,一个规范的代码就出来了,哈哈,就是这么有用!先看看上面的代码被我的软件优化后的效果

 

复制代码
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char a[100], b[1000];
int k, i, j, t = 0, la, lb;
scanf("%d", &k);
while(t < k)
{
scanf("%s", a);
scanf("%s", b);
printf("Case %d:\n", ++t);
printf("%s + %s = ", a, b);
la = strlen(a);
lb = strlen(b);
char c[1000];
if(la < lb)
{
strcpy(c, a); strcpy(a, b); strcpy(b, c);
int c = la; la = lb; lb = c;
}
for(i = 0; i < la/2; ++i)
{
int c = a[i]-48;
a[i] = a[la-i-1]-48;
a[la-i-1] = c;
}
if(la&1) a[la/2] -= 48;
for(j = 0; j < lb/2; ++j)
{
int c = b[j]-48;
b[j] = b[lb-j-1]-48;
b[lb-j-1] = c;
}
if(lb&1) b[lb/2] -= 48;
bool flag = 0;
for(i = lb; i <= la; ++i)
b[i] = 0;
for(i = 0; i < la; ++i)
{
c[i] = a[i] + b[i] + flag;
flag = c[i]/10; c[i] = c[i]%10;
}
if(flag) cout << 1;
for(i = la-1; i >= 0; --i)
printf("%d", c[i]);
cout << endl;
if(t != k)
cout << endl;
}
return 0;
}
复制代码

怎么样??还不错吧。说明一下,我的软件不仅仅是在行首补上空格,更重要的是对行里面的代码格式也进行了优化,这是一些ide所不能比的,完全是参考代码格式标准进行优化的,例如“<=”“=”“==”“>=”“<<”“>>”“+”“-”“*”“/”“%”“!=”等符号左右都补全空格,“[]”“()”等里面都消除空格,{}严格对齐,“”引号里面的内容不做修改,保证输出格式正确,还有把代码中的空行删除……更多细节大家可以研究一下代码,下面把我的的劳动成果无偿献给大家

 

View Code 查看代码

可能有些地方考虑不完善,请大家批评指出。
生成的可执行文件大家可以到我的网盘下载:http://ma6174.ys168.com/


博主ma6174对本博客文章(除转载的)享有版权,未经许可不得用于商业用途。转载请注明出处http://www.cnblogs.com/ma6174/

对文章有啥看法或建议,可以评论或发电子邮件到ma6174@163.com


本文转自ma6174博客园博客,原文链接:http://www.cnblogs.com/ma6174/archive/2011/12/06/2277998.html ,如需转载请自行联系原作者
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
自然语言处理 算法 前端开发
C++与Doxygen:精通代码文档化之道
C++与Doxygen:精通代码文档化之道
49 0
|
1月前
|
存储 JSON 数据库
【C++ 软件设计思路】跨平台应用开发:如何选择合适的格式保存信息
【C++ 软件设计思路】跨平台应用开发:如何选择合适的格式保存信息
95 0
|
1月前
|
存储 缓存 算法
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
114 0
|
1月前
|
安全 算法 C++
【C/C++ 泛型编程 应用篇】C++ 如何通过Type traits处理弱枚举和强枚举
【C/C++ 泛型编程 应用篇】C++ 如何通过Type traits处理弱枚举和强枚举
48 3
|
2天前
|
设计模式 编译器 数据安全/隐私保护
C++ 多级继承与多重继承:代码组织与灵活性的平衡
C++的多级和多重继承允许类从多个基类继承,促进代码重用和组织。优点包括代码效率和灵活性,但复杂性、菱形继承问题(导致命名冲突和歧义)以及对基类修改的脆弱性是潜在缺点。建议使用接口继承或组合来避免菱形继承。访问控制规则遵循公有、私有和受保护继承的原则。在使用这些继承形式时,需谨慎权衡优缺点。
14 1
|
2天前
|
算法 编译器 C语言
探索C++编程的奥秘与魅力
探索C++编程的奥秘与魅力
|
3天前
|
设计模式 存储 Java
C++从入门到精通:3.5设计模式——提升代码可维护性与可扩展性的关键
C++从入门到精通:3.5设计模式——提升代码可维护性与可扩展性的关键
|
4天前
|
C++
【C++】在使用代码组装URL时,一定要注意的坑......
【C++】在使用代码组装URL时,一定要注意的坑......
10 0
|
10天前
|
编译器 C++
C++编程之美:探索初始化之源、静态之恒、友情之桥与匿名之韵
C++编程之美:探索初始化之源、静态之恒、友情之桥与匿名之韵
21 0
|
25天前
|
C语言 C++ 容器
C调用C++代码
C调用C++代码
12 1