问题
输入一个字符串(字符串长度小于等于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 |
有一个奇怪现象,不知道是牛客的问题还是确实代码有问题,在最开始自测时该代码提示出错,输出的结果没问题但就是无法通过用例,然后等了一会再试,又显示通过,属实没搞懂,希望有知道原因的兄弟评论区留言,感谢!!

文章描述了一个C++代码实现,用于将输入的字符串按每8个字符拆分,不足的部分用0补充。当字符串长度非8的整数倍时,会在末尾添加0以达到8的倍数。代码在初次测试时遇到通过用例的问题,但稍后却能成功通过,作者对此表示困惑。


被折叠的 条评论
为什么被折叠?



