C语言输入字符串,按照8位进行分割,不足八位用0补齐,输出字符串超过八位之后输出的结果带有不明意义乱码,程序没有调试完成,属于半成品,想问一下目前这个问题怎么解决
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char str1[102];
char str2[8];
int i,j,m,n;
scanf("%[^\n]",str1);
for(i=0;i<strlen(str1);i++){}
printf("%d\n",i);
j=i%8;
printf("%d\n",j);
if(j!=8)
for(m=i;m<i+(8-j);m++)
{
str1[m]=48;
printf("%c\n",str1[m]);
}
for(i=0;i<strlen(str1);i++)
{
printf("%c",str1[i]);
}
printf("\n");
for(i=0;i<strlen(str1);i++)
{
n=(i+1)%8;
printf("%c",str1[i]);
if(n==0)
printf(" ");
}
return 0;
}
测试输入:222222222
输出结果:22222222 20000000 ?@
不知道怎么解决这个问题