質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

2651閲覧

キーボードから英単語を入力し、その単語に用いられている文字を全種類表示するプログラム

sattsun

総合スコア25

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/04/09 14:02

【問題】
キーボードから英単語を入力し、その単語に用いられている文字を全種類表示するプログラムを作りなさい。文字は、setに登録し、一つの単語内に同じ文字が複数使用されていても、一つとしてカウントすること。

【期待される結果】
英単語を入力:apple ← 英単語を入力
使用されているアルファベット : a e l p ← 出力結果(pは複数回使われているが、出力は一回でよい)

【質問】
appleと出力されます。
pが1個しか出力されないようにしたいです。

#include <iostream> #include <string> #include <set> using namespace std; int main() { set<string> names; char num[10]; int i = 0,j = 0; cout << "英単語を入力:" ; cin >> num; while (num[i] != '\0') { names.insert(num); i++; } cout << "使用されているアルファベット :"; set<string>::iterator it; for (it = names.begin(); it != names.end(); it++) { cout << *it << " "; } return 0; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

2 つの set<string> を set<char> にし、
names.insert(num); を names.insert(num[i]); にするとどうなりますか?

set<string> というのは、
"apple", "peach", "peach", "lemon", "eggplant" という入力に対して、
複数回現れる "peach" を一つにするために使うことになります。

投稿2020/04/10 05:13

kazuma-s

総合スコア8224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sattsun

2020/04/12 00:49

ありがとうございます!出来ました。 でも、なぜstringじゃだめでcharならできるのでしょうか?
episteme

2020/04/12 01:10

重複を取り除く対象は文字(char)であって文字列(string)じゃないもん。
guest

0

...こんなもんスかね。

C++

1#include <iostream> 2#include <string> 3#include <set> 4 5using namespace std; 6int main() { 7 string num; 8 cout << "英単語を入力:" ; 9 cin >> num; 10 set<char> names(num.begin(), num.end()); 11 cout << "使用されているアルファベット :"; 12 for (char ch : names ) { 13 cout << ch << " "; 14 } 15}

投稿2020/04/09 14:19

episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問