按要求分解字符串,输入两个数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年华为机试题