题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
示例1
输入
abc
123456789
输出
abc00000
12345678
90000000
C实现
#include "string.h"
#include "stdio.h"
int main()
{
char string[100];
while(scanf("%s",string)==1) //见1
{
int len = strlen(string); //见C++部分的1
for(int i=0; i<len; i++)
{
if(i%8 == 0 && i!=0)
{
printf("\n");
}
printf("%c",string[i]);
}
if(len%8)
{
int rest = 8-len%8;
for(int i=0; i<rest; i++)
{
printf("0");
}
}
printf("\n");
}
}
1、scanf()函数返回的是此函数读取到的参数个数。
所以,当scanf("%s",s)正常读取到一个字符串时(不论串的长短如何),scanf()函数的值总是1。
只有当它没有读到时(比如,遇到了文件结束、遇到了^Z),就返回读到的参数个数0。键盘上以CTRL+Z(^Z)表示结束。
详见https://blog.csdn.net/weixin_44189360/article/details/108445952
C++实现
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
while(cin >> s)
{
s = s + "0000000"; //特别强调这里是7个0
while(s.size() >= 8) //见1
{
cout << s.substr(0,8) << endl;
s = s.substr(8); //见2
}
}
return 0;
}
1、c/c++中sizeof()、strlen()、length()、size()详解和区别
https://blog.csdn.net/weixin_44189360/article/details/108237845
2、C++中substr函数的用法
substr有2种用法:
假设:string s = "0123456789";
string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789"
string sub2 = s.substr(5, 3); //从下标为5开始截取长度为3位:sub2 = "567"