【c++】【2015华为笔试】分解字符串
按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2 8 abc 123456789”,则输出为abc00000 12345678 90000000
输入样例:
2 8
abc 123456789
输出样例:
abc00000
12345678 90000000
程序代码:
#include<iostream>
#include<cstdio>
using namespace std;
void creat(char* a,int m,int n);
void print_0(int n);
void dis(char* str,int n);
int main()
{
int m,n;
cin>>m;
cin>>n;
char str[1000];
creat(str,m,n);
return 0;
}
//输入字符串,调用其他两个函数,分割并打印字符串
void creat(char* a,int m,int n)
{
for(int i=0;i<m;i++)
{
scanf("%s",a);
dis(a,n);
if(i!=m-1)
cout<<endl;
}
}
//打印n个0
void print_0(int n)
{
int i;
for(i=0;i<n;i++)
putchar('0');
}
//分割字符串
void dis(char* str,int n)
{
int j=0;
int a=strlen(str)/n;
int b=strlen(str)-n*a;
for(int i=0;i<a;i++,j+=n)
{
for(int k=j;k<j+n;k++)
cout<<str[k];
cout<<' ';
}
if(b!=0)
{
for(int i=a*n;i<strlen(str);i++)
cout<<str[i];
print_0(n-b);
}
}
运行结果:
参考资料:2015年华为机试题