您的位置:首页 > 编程语言 > C语言/C++

C、C++代码格式优化软件

2014-10-25 21:13 253 查看
当题目不会做或者算法实现不了时,我们很自然地去网上搜代码,但是网上的代码排版太乱,根本不遵循代码规范,举个例子:大家可以点击这个链接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所不能比的,完全是参考代码格式标准进行优化的,例如“<=”“=”“==”“>=”“<<”“>>”“+”“-”“*”“/”“%”“!=”等符号左右都补全空格,“[]”“()”等里面都消除空格,{}严格对齐,“”引号里面的内容不做修改,保证输出格式正确,还有把代码中的空行删除……更多细节大家可以研究一下代码,下面把我的的劳动成果无偿献给大家
本文转自:http://www.cnblogs.com/ma6174/archive/2011/12/06/2277998.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: