问题
输入一个字符串(字符串长度小于等于100),请按长度为8拆分每个输入字符串并进行输出,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入:长度小于等于100的字符串。
输出:依次输出所有分割后的长度为8的新字符串。
例如:
输入 | 输出 |
---|---|
abc | abc00000 |
知识点
知识点:字符串
问题分析
对字符串进行长度为8的拆分,不足8的补‘0’补满8位。首先我们判断其是否为空字符,空字符我们不处理。然后我们将原字符串补成8的整数倍。最后,8个一组输出字符即可。
代码
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin>>s;
int n=s.length();
if(n==0){
return 0;
}
while(n%8){
s.push_back('0');
n++;
}
for(int i=0;i<n;i++){
cout<<s[i];
if(i%8==7){
cout<<endl;
}
}
}
结果
运行时间 | 占用内存 |
---|---|
4ms | 456KB |
有一个奇怪现象,不知道是牛客的问题还是确实代码有问题,在最开始自测时该代码提示出错,输出的结果没问题但就是无法通过用例,然后等了一会再试,又显示通过,属实没搞懂,希望有知道原因的兄弟评论区留言,感谢!!