首先输入两个整数m,n,分别代表行数和长度,要求输出,将字符串截短成n长,不够补0,多了换行继续输出
如输入:
2,8
1234567812345678123
asd
输出
12345678
12345678
12300000
asd00000
实现代码:
#include <stdio.h>
void func(int len, char *str);
char * search(char *str);
int main()
{
char *str = "12345678\nab\ncc\ndd";
int col, len;
int i;
char *p;
scanf("%d%d",&col,&len);
func(len,str);
p = str;
for(i=1; i<col; i++)
{
p = search(p);
func(len,p);
}
return 0;
}
void func(int len ,char *str)
{
int i = 0, j=0;
while(str[i]!='\n'&&str[i]!='\0')
{
if(j == len-1)
{
j = -1;
printf("%c",str[i]);
printf("\n");
}
else
printf("%c",str[i]);
i++;
j++;
}
if(str[i] == '\n'||str[i] == '\0')
{
if(j!=0)
{
for(; j<len; j++)
{
printf("%c",'0');
}
printf("\n");
}
}
}
char * search(char *str)
{
int i=0;
while(str[i]!='\n')
{
i++;
}
return &str[i+1];
}