•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
输入例子:
abc 123456789
输出例子:
abc00000 1234567890000000
思路:我先不了解substr函数,就以自己思路入手。一个元素一个元素输出,满了长度8就换行,这还不够,还要限定补零啊,从哪补,补多少个是我的这个程序的重点。
而str.substr(i,j)的用法,他实际起的作用返回就是从i个点起长度为j的字符串。
代码:
#include<iostream> #include<string> using namespace std; /*输出函数: 1.小于字符串本身长度就一个一个输出 ** 2.大于字符串本身长度就补0 ** 3.满8就换行 */ void eout(string &str,int len,int w){ for(int i=0;i!=w;i++){ if(i<len){ cout<<str[i]; } if(i>=len){ cout<<0; } if(i>0&&(i+1)%8==0){ cout<<endl; } } } int main(){ string str1,str2; getline(cin,str1); getline(cin,str2); int len1=str1.size(); int w1,w2; //记录str1,str2到底最后输出多少个元素 if(len1%8==0){ w1=len1; } else{ w1=(len1/8+1)*8; } int len2=str2.size(); if(len2%8==0){ w2=len2; } else{ w2=(len2/8+1)*8; } eout(str1,len1,w1); eout(str2,len2,w2); }