简易C程序格式化工具
来源:互联网 发布:网络电视在线直播观看 编辑:程序博客网 时间:2024/06/13 20:24
#include <stdio.h>#include <string.h>char a[4096];int main(int argc, char* argv[]) { //open the souce file char* name = argv[1]; FILE* r = fopen(name, "r"); int i=0; while(fscanf(r,"%c",&a[i++])!=EOF)NULL; a[i]=0; int n=i; fclose(r); //replace table with ' ' for(i=0;i<n;i++) { if(a[i]=='\t') a[i]=' '; } //delete replicated' ' int j; for(i=1;i<n;i++) { if(a[i]==' ' && a[i-1]==' ') { for(j=i+1;j<=n;j++) { a[j-1]=a[j]; } n--;} } // add \n after { or } for(i=0;i<n;i++) { if((a[i]=='{'|| a[i]=='}') &&(i+1<n && a[i+1]!='\n') ) { if(a[i+1]!=' ') { for(j=n;j>=i+1;j--) { a[j+1]=a[j]; } a[i+1]='\n'; n++; } else { a[i+1]='\n'; } } } //add \n before { or } for(i=1;i<n;i++) { if((a[i]=='{'|| a[i]=='}') &&(a[i-1]!='\n')) { if(a[i-1]!='\n') { for(j=n;j>=i;j--) { a[j+1]=a[j]; } a[i]='\n'; n++; } else { a[i-1]='\n'; } } } //store the source code by rows char b[1024][128]; int num=0; j=0; for(i=0;i<n;i++) { if(a[i] != '\n') { b[num][j] = a[i]; j++; }else { b[num][j] = '\n'; j++; b[num][j]=0; num++; j=0; } } int lines=num; //delete the start ' ' for(i=0;i<lines;i++) { j=0; while(b[i][j]==' ') j++; int k=j; while(b[i][j]) { b[i][j-k]=b[i][j]; j++; } b[i][j-k]=b[i][j]; } //format num=0; for(i=0;i<lines;i++) { if(strlen(b[i])==1 && b[i][0]=='\n') { continue; } for(j=0;j<strlen(b[i]);j++) { if(b[i][j]== '}') { num--; break; } } n = strlen(b[i]); for(j=n;j>=0;j--) { b[i][j+num*4]=b[i][j]; } for(j=0;j<num*4;j++) { b[i][j]=' '; }; for(j=0;j<strlen(b[i]);j++) { if(b[i][j]== '{') { num++; break; } } } //show && save the result char s[128]="new_"; strcat(s,argv[1]); FILE* w = fopen(s,"w"); for(i=0;i<lines;i++) { if(strlen(b[i])==1 && b[i][0]=='\n') continue; j=0; while(b[i][j]) { fprintf(w,"%c",b[i][j]); putchar(b[i][j]); j++; } } fclose(w); return 0;}
输入:
#include <iostream>using namespace std;bool hasOne(int n) { while(n>0) {if(n%10==3)return true;n=n/10;}return false;}int main(){int count=0;for(int i=0;i<=999999;++i){if(!hasOne(i))count++;}cout<<count<<endl;return 0;}
输出:
./a.out a.cpp #include <iostream>using namespace std;bool hasOne(int n) { while(n>0) { if(n%10==3) return true; n=n/10; } return false;}int main(){ int count=0;for(int i=0;i<=999999;++i) { if(!hasOne(i)) count++; } cout<<count<<endl; return 0;}
Author:段廷银
Date:2015.11.20
Email:clickyeah@yeah.net
0 0
- 简易C程序格式化工具
- clang-format 格式化工具简易配置
- c代码格式化工具AStyle
- 用indent格式化C程序
- C Java PHP Perl Python 程序源代码格式化(美化)工具(zz)
- 使用AStyle工具格式化java程序
- c语言代码格式化工具(unix/linux)
- c语言代码风格格式化工具
- indent-C语言代码格式化工具
- linux C 代码格式化工具indent
- Indent C语言代码格式化工具
- 求简易计数器c语言程序
- c语言实现的简易窗口程序
- 【C#】简易编码与解码小程序
- 简易的万年历程序C语言
- 【C语言】模拟登陆程序(简易)
- C程序自动构建工具
- linux c下的一个简易http代理程序
- git 删除远程分支
- Android systemUI移植
- POP与IMAP优缺点比较
- 关于Spring中的<context:annotation-config/>配置
- MySql查询结果按照指定顺序排序
- 简易C程序格式化工具
- Wireshark实战分析之ARP协议(二)
- Debian 死机后强制重启出现错误解决方法
- Android错误——The connection to adb is down, and a severe error has occured 解决方案
- 错误 3027: 没有为以下 EntitySet/AssociationSet 指定映射
- Volley缓存策略
- qt.conf和qtconfig配置Qt运行设定
- 系统流量变化的原因与微型气泵的关系
- nginx 之cgi fastcgi.conf和fastcgi_params的区别