题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
#include<stdio.h> #include<string.h> int main() { char in[101]={0}; char out[9]={0}; while(gets(in)) //gets标准读入字符串直到换行符为止 跟cin和scanf在读入字符串时遇到空格停止有区别 { char *p=in; char* 表示以该指针为首的字符数组 while(*p) //不为空串 { for(int i=0;i<8;i++) { if(p[i]) out[i]=p[i]; else out[i]='0'; //不够补0 因为是字符串所以补得0也是字符 } printf("%s ",out); p=p+8; } memset(in,0,110); //清0 为in数组,前110个字符赋0 } }
本题自己想法是给string按照位依次赋值0,但实际上不能这么做。而且string也有专门的函数append为其加0;
同样也熟悉了cin,scanf和gets的区别 以及字符串数组的指针运用 还有memset的运用回顾