teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード例追加

2020/01/28 06:00

投稿

fana
fana

スコア12229

answer CHANGED
@@ -1,4 +1,23 @@
1
1
  strCopyに入力が全部ひとつながりになっているのであれば,
2
2
  strCopyの要素についてループして1文字ずつ表示していき,
3
3
  その際に6文字毎に改行すればよいのではないでしょうか.
4
- (「1文字ずつ」が非効率だと思うなら,意味的に同様な処理実装にすればよい)
4
+ (「1文字ずつ」が非効率だと思うなら,意味的に同様な処理実装にすればよい)
5
+
6
+ ---
7
+
8
+ 例えば,こんなので良いのでは.
9
+ ```C++
10
+ //※strCopy に,すべての入力文字列がひとつながりでつながっている.
11
+ const std::string strCopy = "123456abcdefABCDEFXYZ";
12
+ const size_t N = strCopy.size();
13
+
14
+ size_t Pos=0;
15
+ while( Pos+6 < N )
16
+ {//6文字毎に改行して表示
17
+ std::cout << strCopy.substr( Pos, 6 ) << std::endl;
18
+ Pos+=6;
19
+ }
20
+ //残りがある場合に表示する
21
+ size_t Rest = N-Pos;
22
+ if( Rest ){ std::cout << strCopy.substr( Pos, Rest ) << std::endl; }
23
+ ```