华为机试——字符串拆分
2016-01-12 16:01
197 查看
按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。
例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”
例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”
#include<iostream> #include<stdio.h> #include<string> #include<vector> using namespace std; /* int main() { int m,n; vector<string> vs; cin>>m>>n; string s; for(int i=0;i<m;i++) { cin>>s; vs.push_back(s); } vector<string>::iterator it; for(it=vs.begin();it!=vs.end();++it) { string tmp=*it; int len=tmp.size(); int k=len/n; string::iterator si; for(int i=0;i<k;i++) { if(len<n) { tmp=tmp+string(n-len,'0'); cout<<tmp<<endl; } else { string str(tmp,i*n,n); cout<<str<<" "; } } string str2(tmp,k*n,len-k*n); str2+=string((k+1)*n-len,'0'); cout<<str2<<endl; } } */ //方法2 void solve(char *str,int n,int len) { int i,j,k; for(i=0;i<len;i+=n) { if(len-i<n) //所划分的单元内符号个数小于n { k=n+i-len; //需要补零个数 for(j=i;j<len;j++) printf("%c",str[j]); for(j=0;j<k;j++) putchar('0'); //printf("%c",'0'); } else { for(j=i;j<i+n;j++) printf("%c",str[j]); } putchar(' '); } printf("\n"); } int main() { int i,m,n,len; //char str[100]; char str[10][100]; cin>>m>>n; /*for(i=0;i<m;i++) { scanf("%s",str); len=strlen(str); solve(str,n,len); } */ for(i=0;i<m;i++) scanf("%s",str[i]); for(i=0;i<m;i++) { len=strlen(str[i]); solve(str[i],n,len); } return 0; }
相关文章推荐
- memcpy && strncpy的区别,memcpy && strcpy的区别
- Kafka可靠性的思考
- .net网站报错:对象的当前状态使该操作无效
- 移动+透明渐变叠加动画Demo
- 前端接入HTTP协议浅析
- verilog语法注意部分(转)
- python + opencv 中 kp(关键点) 的形式及提取坐标方法
- Object-c 中的数据类型
- event对象的使用注意事项
- web前端的坑
- 使用Redis作为缓存2
- L14.1 puppert master,agent 应用(1)
- xshell密钥登录和密钥登录注意
- 数组、函数、变量/作用域/存储区/生命周期/程序优化、exit标准函数、递归函数
- jQuery认识
- 电子之电磁学学习记录1
- 问题人生[20160112] the App Transport Security policy requires the use of a secure connection
- 调用活动,通过intent隐式调用
- 国内首个CTO企业信息安全调查报告
- Kaggle 机器学习竞赛冠军及优胜者的源代码汇总