题解 | #字符串分隔#
字符串分隔
https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7
1.处理空字符串,通过while(scanf("%s",input)!=EOF)和strcat函数读取无空格的字符串; 2.为了实现不足8位数字输入000的功能,可以定义一个字符串temp=“00000000\0”,使用strncpy函数将8个字符逐个拷贝到temp中,并打印,打印后需要将数组还原。 3.str每拷贝一次,读取该位置起第8位的地址,直到读取到8的最大倍数。 4.若字符串长度非8的倍数,则最后拷贝的是len%8个字符串到temp中。 #include<stdio.h> #include<string.h> int main() { char input[100]={0}; char str[100]={0}; while(scanf("%s",input)!=EOF)//处理空字符串的方法 { strcat(str,input); } char temp[9]={'0','0','0','0','0','0','0','0','\0'}; int len=strlen(str); int i=0; //字符串长度小于等于8直接输出 if(len<=8) { strncpy(temp,str,len); printf("%s",temp); } //字符串长度大于8 else { int n=len/8; //输出8的倍数部分 for(i=0;i<n;i++) { strncpy(temp,str+i*8,8); printf("%s\n",temp); memset(temp,'0',8); } //输出除以8的余数部分 if(len%8!=0) { strncpy(temp,str+i*8,len%8); printf("%s\n",temp); } } return 0; }