C++競プロ学習日記(仮)

( 学習記録であり解説Blogではないです )

すてにゃん Advent Calendar 2015

この記事は「すてにゃん Advent Calendar 2015」の12/20(日)分の記事です!

何個かAdvent Calendarのお誘いを受けたのですが...
プログラミング系はまだまとまった知識も無いので閲覧勢する事にして、
すてにゃんAdvent Calendarなるモノに参加したのです!

まず、すてにゃん is 誰? ですよね(?)

すてにゃんは猫でプログラマ
ん?猫??って思いますよね?
でも本人が「すてにゃんは猫です」ってニコ生で言っていたので間違いないです!
(興味がある方(?)は すてにゃん (@stefafafan) | Twitterを今すぐフォロー )

さて。すてにゃんのスクリーンネーム@stefafafan ...
これをずっと見ていたらC++stringでの文字列操作のサンプルに使えそうな事に気付いた。

なので、すてにゃんのスクリーンネームstringの勉強をしてみた!

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str = "stefafafan";
    
    /*文字列を後ろに追加*/
    
    str.append(" is neko");
    cout << str << endl;

    return 0;
}

実行結果:stefafafan is neko

文字列(stefafafan)の後ろにちゃんと is neko が入っています。

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str = "stefafafan";
    
    /*文字列を後ろに追加(繰り返し個数指定)*/
    
    str.append(10,'!');
    cout << str << endl;

    return 0;
}

実行結果:stefafafan!!!!!!!!!!

同じappend()を使って、今度は繰り返しを。
append( 繰り返す回数 , 繰り返す文字 )
ここで繰り返せる文字数は1文字しかダメっぽかったです。(要確認)

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str = "stefafafan";
    
    /*指定箇所から指定数を取得*/
    
    str.assign( str, 3, 3 );
    cout << str << endl;

    return 0;
}

実行結果:faf

assign( 文字列, 指定箇所, 指定文字数 )
0から数えるので、左4文字目から3文字で stefafafan 太字箇所のみ取得できます。

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str = "stefafafan";
    
    /*文字列を指定箇所から指定数消して最後まで消す*/
    
    str.erase(3,4);
    cout << str << endl;

    return 0;
}

実行結果:stefan

個人的にはこれ凄く便利だと思ったのですが...
erase(指定箇所,文字数)
文字列の3番目から4文字消してね!って書いてあります。
この場合0番目から数えて stefafafan 太字箇所の4文字が削除されます。

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str = "stefafafan";
    
    /*文字列数を返す*/

    cout << str.length() << endl;
    cout << str.size() << endl;

    return 0;
}

実行結果:10
実行結果:10

似てたので2個まとめて実行してみました。
stefafafan が10文字なので 10 を返してくれます!

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str = "stefafafan";
    int len = str.size();
    
    for(int i=0; i<len; i++){
        cout << "すてにゃん" << endl;
    }
    return 0;
}

実行結果:
すてにゃん
すてにゃん
すてにゃん
すてにゃん
すてにゃん
すてにゃん
すてにゃん
すてにゃん
すてにゃん
すてにゃん

C言語でもlen = strlen( str );で文字数を取得してfor文のloop条件とかで
良く使ってました!(なぜ

すてにゃんを沢山出力した所で...

stringの関数もっと試してみたかったのですが、イテレーター?ベクター?などが
まだ未勉な為、また勉強を進めたらサンプル書きたいと思います!
(猫C++の最後の方にあったのでこれから学ぶ予定です)

最後に...

気付いたらすてにゃんの事に全然触れていなかったので少し触れます。
すてにゃんの作ったアニメ?動画を見た事があるのです。
ご友人と制作なさった様で、すてにゃんが英語で声当てもしてたりするんですが...
何故かストーリーなども良くて夜に何度か見て、すてにゃんの英語を聞き取っていました。
が...!
先日のすてにゃんの初ニコ生を聞いたらその流暢な英語を話しているイメージは去った(完

すてにゃんまた来年も何かお気付きな点があったら
CODEのご指導(?)をお願いします!!!!

(字下げは気をつける...!)

おわり