![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No4のやり方だと"hherer."が"her."にならないといけないのに"."になります。
そこでそれを直すとともに速度も速くなるように若干の修正します。
#include<string>
#include<iostream>
using namespace std;
void main(void)
{
unsignedpos;
stringstr;
char*a;
chara1[]="This is a her book.hherer.";
chara2[]="her";
//
for(str=a1,pos=0;(pos=str.find(a2,pos))!=string::npos;str.erase(pos,strlen(a2)));
strcpy(a=new char[str.size()+1],str.c_str());
cout<<"a1="<<a1<<endl;
cout<<"a2="<<a2<<endl;
cout<<"str="<<str<<endl;
cout<<"a="<<a<<endl;
delete[]a;
}
結果:
a1=This is a her book.hherer.
a2=her
str=This is a book.her.
a=This is a book.her.
No.4
- 回答日時:
文字列a2がいっぱいある場合には
#include<string>
#include<iostream>
using namespace std;
void main(void)
{
unsignedpos;
stringstr;
char*a;
chara1[]="This is a her book.That is a her notebook.";
chara2[]="her ";
//
for(str=a1;(pos=str.find(a2))!=string::npos;str.erase(pos,strlen(a2)));
strcpy(a=new char[str.size()+1],str.c_str());
cout<<"a1="<<a1<<endl;
cout<<"a2="<<a2<<endl;
cout<<"str="<<str<<endl;
cout<<"a="<<a<<endl;
delete[]a;
}
結果:
a1=This is a her book.That is a her notebook.
a2=her
str=This is a book.That is a notebook.
a=This is a book.That is a notebook.
No.3
- 回答日時:
もっと簡潔にすれば・・・
#include<string>
#include<iostream>
using namespace std;
void main(void)
{
string str;
char *a;
char a1[]="This is a her book.";
char a2[]="her";
(str=a1).erase(string(a1).find(a2),string(a2).size());
strcpy(a=new char[str.size()+1],str.c_str());
cout<<"a1="<<a1<<endl;
cout<<"a2="<<a2<<endl;
cout<<"str="<<str<<endl;
cout<<"a="<<a<<endl;
delete[]a;
}
結果:
a1=This is a her book.
a2=her
str=This is a book.
a=This is a book.
No.2
- 回答日時:
#include<string>
#include<iostream>
using namespace std;
void main(void)
{
string str,str1,str2;
char *a;
char a1[]="This is a her book.";
char a2[]="her";
str1=a1;str2=a2;
(str=str1).erase(str1.find(str2),str2.size());
a=new char[str.size()+1];
strcpy(a,str.c_str());
cout<<"str1="<<str1<<endl;
cout<<"str2="<<str2<<endl;
cout<<"str="<<str<<endl;
cout<<"a="<<a<<endl;
delete[]a;
}
結果:
str1=This is a her book.
str2=her
str=This is a book.
a=This is a book.
No.1
- 回答日時:
a2に含まれる文字ということは、hも抜き取るんでしょうか?それなら、Tis is...になりますね。
そうではなく、a2にマッチした部分を削除するんでしたら、まずは文字列検索(照合)をしてどこにマッチする部分があるかを調べる必要があります。
ナイーブな方法ならいろいろありますが、洗練された方法の一つにboyer moore法があります。参考URLにあげますので、調べてみてください。
参考URL:http://www.people.or.jp/~fussy/algo/algo7-4.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- Excel(エクセル) 【画像あり】A1が●+B1と同じ文字がB列にある+C1と同じ文字がC列にある場合D1に〇を付ける 3 2023/03/09 18:18
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
- UNIX・Linux sedでの正規化 2 2022/05/10 11:39
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空 5 2022/12/20 15:17
- Excel(エクセル) 【VBA】A列にある連続したデータの1番下に文字列を入力したい 1 2023/01/28 04:40
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
えエクセルで○は1とし△は0.5で...
-
VBAで組み合わせ算出やCOUNTIFS...
-
Excel 英大文字小文字を区別せ...
-
EXCELで2つの数値のうち大きい...
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで特定の文字が入って...
-
エクセルで、2種類のデータを...
-
Excelで隣のセルと同じ内容に列...
-
エクセルでオートフィルタのボ...
-
Excelで半角の文字を含むセルを...
-
エクセルで時刻(8:00~20:00)...
-
エクセル 文字数 多い順 並...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
Excel、市から登録している住所...
-
EXCELで 一桁の数値を二桁に
-
エクセルで最初のスペースまで...
-
文字列に数字を含むセルを調べたい
-
エクセルのオートフィルタで最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
えエクセルで○は1とし△は0.5で...
-
VBAで組み合わせ算出やCOUNTIFS...
-
急いでいます。論文での数式の...
-
URLの?以降の名称(~~/index...
-
UWSCのCALLで呼び出すファイル...
-
Excel 英大文字小文字を区別せ...
-
VBA スタック容量が足りない・...
-
Excel ユーザーフォームのオプ...
-
誰か解いてください!
-
a1,...,anをRnの基底とする時、...
-
EXCELで2つの数値のうち大きい...
-
Excelで隣のセルと同じ内容に列...
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルでオートフィルタのボ...
-
エクセルで特定の文字が入って...
-
エクセルで、2種類のデータを...
-
エクセルのオートフィルタで最...
-
Excelで半角の文字を含むセルを...
-
2つのエクセルのデータを同じよ...
おすすめ情報