[c++] 文字列の末尾を切り捨てる

完全放置だったので,簡単な記事を投下.


string型の文字列sがあって,"abcde"がセットされている.

末尾3文字を切り捨てて,先頭2文字だけを残し,標準出力に表示したい.


で,こういうクソコードを書いてた.
// 前提:using namespace std;

string s = "abcde";
s[2] = 0;
cout << s << endl;

このとき出力されるのは"abde"であり,ostreamはヌル文字\0を検知したからといって停止しない点に注意.

coutの代わりにprintfを使えば望み通りの出力"ab"が得られる.
    string s = "abcde";
s[2] = 0;
printf("%s\n",s.c_str()); // ab



そもそも可読性の事を考えればresizeを使うべきである.

string s = "abcde";
s.resize(2);
cout << s << endl;


スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : c++

C++でrubyのinjectっぽい文を書く

そもそもRubyのArray.injectって何ぞ?

https://www.google.co.jp/search?q=ruby%20inject


arrayの総和と最大値を求めるプログラムをinjectを使って書くと、次のようになる。
(もっとすっきりとした書き方はある)
arr = [1,2,3]
sum = arr.inject(0){|s,e| s=s+e ; s}
max = arr.inject{|s,e| s = e if s < e ; s}

これをC++で使いたい。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : c++ Ruby

C++で「error: jump to label 'labelNameHere' [-fpermissive]」というコンパイルエラー

多重continueをしたい。javaにはあるみたいなんですが。


#include<bits/stdc++.h>
using namespace std;

int main(){
int i;
for (cin>>i;i>0;i--){
for (;;){
goto l_next;
break;
}
int j=i;
l_next:;
}
return 0;
}


コンパイルエラー吐きます。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : c++

[C++] コンテナ(stack,queue)のpop()

セグメンテーションエラーの巻


次のプログラムは、一応動きますが…。

#include <iostream>
#include <queue>

using namespace std;

int main(){
queue<int> q;

q.push(3);
while (!q.empty()){
int &a =q.front();q.pop();
cout<<a<<endl;
if (0<a){
q.push(a-1);
q.push(a-2);
}
}

return 0;
}

動けばおk?

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : c++

C++の参照

#include <iostream>

using namespace std;

class cls{
public:
cls(int p):p(p){};
int p;
};

int main(){
int n,dim;

cls one(1);
cls two(2);
cls six(6);

cls *v1=&one;
cls *v2=&one;

v2=&six;

cout<<one.p<<endl;
cout<<two.p<<endl;
cout<<six.p<<endl;

cout<<v1->p<<endl;
cout<<v2->p<<endl;
return 0;
}


stdout:
1
2
6
1
6


これを参照表現を使って書きたい。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : c++

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++JavaRubyUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1815位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
333位
アクセスランキングを見る>>