文字列の挿入について。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
string!!

文字列の挿入について。

#1

投稿記事 by string!! » 9年前

文字列の挿入についてです。
 
例えば、

system関数を使ってwindows上でコマンドを実行したいときにsystem("dir");などするわけですが、
windowsのcdコマンドを使いたいときに"cd Document"などするわけですがこのDocumentのところ
を自分が入力したものにしたいわけです。(入力するため毎回変わります。)

コード:

aiueokakikukeko -a ""
また、これの""のなかに文字列を挿入するにはどうすればいいでしょうか。
どのようにすればいいでしょうか。
ソースをいただけないでしょうか。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 文字列の挿入について。

#2

投稿記事 by みけCAT » 9年前

string!! さんが書きました:system関数を使ってwindows上でコマンドを実行したいときにsystem("dir");などするわけですが、
windowsのcdコマンドを使いたいときに"cd Document"などするわけですがこのDocumentのところ
を自分が入力したものにしたいわけです。(入力するため毎回変わります。)
なるほど。"のエスケープや、不正な入力に対するセキュリティに気をつけるといいと思います。
string!! さんが書きました:

コード:

aiueokakikukeko -a ""
また、これの""のなかに文字列を挿入するにはどうすればいいでしょうか。
どのようにすればいいでしょうか。
ソースをいただけないでしょうか。
言語が指定されていないようですが、とりあえずコードタグの表示にしたがってC++で書いてみました。

コード:

#include <cstdio>
#include <string>

std::string insert_text_in_double_quotes(const std::string& target, const std::string& string_to_insert) {
	std::string ret = target;
	std::string::size_type start_pos = 0;
	std::string::size_type length_to_insert = string_to_insert.size();
	for (;;) {
		std::string::size_type next = ret.find("\"\"", start_pos);
		if (next == std::string::npos) break;
		ret.insert(next + 1, string_to_insert);
		start_pos = next + length_to_insert + 2;
	}
	return ret;
}

int main(void) {
	std::string text = "aiueokakikukeko -a \"\"";
	std::string ret = insert_text_in_double_quotes(text, "文字列");
	puts(ret.c_str());
	return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

string!!

Re: 文字列の挿入について。

#3

投稿記事 by string!! » 9年前

ありがとうございます。
はいc++です。
system関数に変数を渡すにはどうすればいいのでしょうか。
また、C言語、C++を勉強する上でおすすめの本がありましたら教えてください。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 文字列の挿入について。

#4

投稿記事 by みけCAT » 9年前

string!! さんが書きました:はいc++です。
system関数に変数を渡すにはどうすればいいのでしょうか。
「system関数に変数を渡す」という概念がよくわからないですが、変数が持っているデータなら普通に渡せばいいのではないでしょうか?

コード:

#include <cstdlib>
#include <string>

int main(void) {
	std::string moziretu = "factor 57885161";
	system(moziretu.c_str());
	return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

string!!

Re: 文字列の挿入について。

#5

投稿記事 by string!! » 9年前

ありがとうございます。
最後におすすめのc言語とC++の本教えてください!!

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 文字列の挿入について。

#6

投稿記事 by softya(ソフト屋) » 9年前

実はC++がどういうものか良く分かっていない気がしないでも無いですが、メインとしてC++をやるならC言語は不要だと思いますので、「ロベールのc++入門講座」などを買われてはどうでしょうか。ちなみに、とても難しいです。

【補足】辞書並みの厚さの本なので、私はこんなものをこれから入門するんだという覚悟を決めることが出来る本だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る