题解 | #字符串分隔#
字符串分隔
https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7
//代码相对冗长,但对于读者更容易理解 #include <stdio.h> #include<string.h> int main() { char arr[100]=""; gets(arr); //此处创建brr数组,主要目的是防止改变原arr数组内容,养成良好的代码习惯 //也可以不创建,直接利用arr打印 char brr[8]=""; int sz=strlen(arr); int i=0; int num=0; int t=sz; //有字符,打印 if(sz>0) { //大于等于8个字符,最后一个字符串需要补0,其余8个一组直接打印 if(sz>=8) { for(t=sz;t>7;t-=8) { for(i=0;i<8;i++) { brr[i]=arr[i+num*8]; printf("%c",brr[i]); } printf("\n"); num++; } //最后一组有剩余字符,且不足8个,补0 if(t>0) { for(i=0;i<t;i++) { brr[i]=arr[i+num*8]; printf("%c",brr[i]); } for(i=t;i<8;i++) { brr[i]='0'; printf("%c",brr[i]); } printf("\n"); } } //原字符串不足8个,直接补0输出 else { for(i=0;i<sz;i++) { brr[i]=arr[i]; printf("%c",brr[i]); } for(i=sz;i<8;i++) { brr[i]='0'; printf("%c",brr[i]); } printf("\n"); } } //无字符内容,直接打印空串 else { printf("%s\n",arr); } return 0; }