Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録
< はしがき |anond:20181223205216 >

2018-12-23

anond:20181223184745

この辺になってくると初心者の人は面倒かな?

解説をつければかなりわかりやす

基本的な書き方

class mystring{public:char *buffer;mystring() {buffer = (char*)"";}void operator = (constchar*t){intlen = strlen(t);buffer = newchar[len + 47];strcpy(buffer, t);}void operator = (const mystring&amp;src){intlen = strlen(src.buffer);buffer = newchar[len + 47];strcpy(buffer,src.buffer);}mystring&amp; operator + (constchar*t){intlen = strlen(buffer);intlen2 = strlen(t);char *buffer2 = newchar[len +len2 + 47];strcpy(buffer2, buffer);strcpy(buffer2+len, t);buffer = buffer2;return *this;}mystring&amp;  operator + (const mystring&amp;src){return ((*this) +src.buffer);}};

STL化したもの

class mystringV{public:std::vector&lt;char&gt; buffer;mystringV(){buffer.resize(2);buffer[0] = ' ';buffer[1] = NULL;}void operator = (constchar*t){intlen = strlen(t);buffer.resize(len+1);strcpy(&amp;buffer.at(0), t);}void operator = (const mystringV&amp;src){buffer =src.buffer;}mystringV&amp; operator + (constchar*t){intlen = strlen(&amp;buffer.at(0));intlen2 = strlen(t);buffer.resize(len +len2 + 47);strcpy(&amp;buffer.at(0) +len, t);return *this;}mystringV&amp;  operator + (const mystringV&amp;src){return ((*this) + &amp;src.buffer.at(0));}};

考察

様々な話はあるものSTLの方を使えば

いろんな事をプログラマにかわってライブラリがやってしまうということ

どうなんだろうね。

この辺は あまりしっかり おしえてもらえないところではある。

でも プロならみんな 知っている

Permalink |記事への反応(1) | 20:54

このエントリーをはてなブックマークに追加ツイートシェア

記事への反応 -
  • 技としてはナイスだけど応用は厳しいよね const char *message = " Hello world\n"; for (int i = 0; i &lt; 8; i++) { printf("%s", message + 8 - i); } サンプルとしては、使いにくい書き方

    • std::string space; for (int i = 0; i &lt; 8; i++) { printf("%sHello world\n", space.c_str()); space += " "; } &LT;は< 例外的に 効率は悪いけど こういうふうな書き方もできるC++

      • std::string space; for (int i = 0; i &lt; 8; i++) { printf("%sHello world\n", space.c_str()); space += " "; } std::string space_org; for (int i = 0; i &lt; 8; i++) { std::string space = space_org + " "; printf("%sHello world\n", space.c_str());...

        • 一気に並べてみる オーソドックスな書きかた int i;int space;for (int i = 0; i &lt; 8; i++){ for (space = 0; space &lt; i; space++) { printf(" "); } printf("Hello world\n");} すまん &lt;は半角の<に置き換えてくれ(...

          • 初心者用 class mystring{public: char *buffer; mystring() { buffer = (char*)""; } void operator = (const char*t) { int len = strlen(t); buffer = new char[len + 47]; strcpy(buffer, t); } void operator = (const mystring&amp;src) { int len = st...

            • この辺になってくると初心者の人は面倒かな? 解説をつければかなりわかりやすい 基本的な書き方 class mystring{public: char *buffer; mystring() { buffer = (char*)""; } void operator = (const char*t) { int len...

              • もしかしてスペース増田さんだったの?

                • ほいよ char format[50]; strcpy(format, "%0s%s"); for (int i = 0; i &lt; 8; i++) { printf(format,"","Hello world\n" ); format[1]++; } スペース増田なら こんなかんじか?

          • マジレスしとくと、hello worldはもっと変態的な書き方ができたはずだぞ 特にC言語なら

      • 最近はVisual Studioは勉強用なら無料 https://visualstudio.microsoft.com/ja/ Visual Studioだって今は無料 簡単なプログラム printf(&quot;Hello world&#92;n&quot;); よく知られているやつ 簡単なプログラム 今回...

        • こういうの見せられていつも思うんだけど、 これで具体的に何ができるのかわからない テトリスとか作れんの?

記事への反応(ブックマークコメント)

全てのコメントを見る

人気エントリ

注目エントリ

ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp