C言語関係掲示板

過去ログ

No.1014 英単語を複数形に

[戻る] [ホームページ]
No.1243

英単語を複数形に
投稿者---鷹(2004/02/04 21:48:29)


初めて書きます。C++で英単語を複数形にするプログラムの作り方がさっぱりわかりませんすいません教えてください!
ex book→books こんな感じになるようにしたいんですが・・・

No.1244

Re:英単語を複数形に
投稿者---YuO(2004/02/04 22:26:01)


>初めて書きます。C++で英単語を複数形にするプログラムの作り方がさっぱりわかりませんすいません教えてください!
>ex book→books こんな感じになるようにしたいんですが・・・

とりあえず,どうすればそのようなことができるかを一生懸命考えることです。
最終的には表引きが欠かせなくなりますが……
まぁ,mapでも使えば表引きは簡単に処理できるでしょう。


No.1245

Re:英単語を複数形に
投稿者---iijima(2004/02/04 22:28:56)


文字列に文字を追加することはできますか.
とりあえず,次のコードを検討してみてください.

#include <string>
#include <iostream>

int main()
{
    std::string word = "book";
    std::cout << word << std::endl;

    word += 's';
    std::cout << word << std::endl;
}


No.1248

Re:英単語を複数形に
投稿者---鷹(2004/02/04 23:32:13)


返事ありがとうございます
えっと書いてあるやつやってみてビルドするとわけもわからない文字がたくさんでてくるんですけど これはいったい?

No.1249

Re:英単語を複数形に
投稿者---iijima(2004/02/04 23:44:05)


> えっと書いてあるやつやってみてビルドするとわけもわからない文字が
> たくさんでてくるんですけど これはいったい?

どのような環境で(コンパイラの種類、オプションなど)どのようにやったのか。
「わからない文字」とはどのようなもので、どこに出るのか。
など、もう少し事情を具体的に説明していただかないと、なんとも答えようがありません。

No.1250

Re:英単語を複数形に
投稿者---鷹(2004/02/04 23:55:33)


Microsoft VisualC++6.0でさっきのビルドするとエラーが100個とか出てきて
emplate<class _E, class _Tr = char_traits<_E> >
typedef basic_ios<wchar_t, char_traits<wchar_t> > wios;こんなんが

No.1251

Re:英単語を複数形に
投稿者---iijima(2004/02/05 00:09:36)


普通にVC++をインストールして、オプションの変更などをしていなければ通るはずなんですけどねぇ。
コンパイルエラーが出るのであれば、エラーコード(番号)が表示されているはずです。
そのエラーコードの内容をヘルプで調べてみてください。

# お書きになったソースコードもよくチェックしてください。
# もしかして、<iostream.h>(拡張子のついたヘッダ)をインクルードし
# ているなんていうことはないですか?

No.1246

Re:英単語を複数形に
投稿者---たか(2004/02/04 22:30:36)


>初めて書きます。C++で英単語を複数形にするプログラムの作り方がさっぱりわかりませんすいません教えてください!
>ex book→books こんな感じになるようにしたいんですが・・・

ラテン語が語源の単語は不規則な変化をします。それは辞書を入れる
しかないでしょう。

No.1256

Re:英単語を複数形に
投稿者---senshou(2004/02/06 01:49:34)


素人意見で悪いんですが、語尾で判断すればいいのではないでしょうか?
いくつかルールがあったはずで、
boxのようにxで終わるやつはboxesとesをつけるとか、
knife、lifeのようにfまたはfeで終わってるものはfまたはfeをvesに変えるとか。

こんなプログラムが組めるかどうか分かりませんが、
組めたとしても私にできるかどうか・・・
少しおもしろそうだから挑戦してみようかな?

No.1258

Re:英単語を複数形に
投稿者---AA(2004/02/06 05:39:07)


>素人意見で悪いんですが、語尾で判断すればいいのではないでしょうか?
>いくつかルールがあったはずで、

人間の話す自然言語で、100%説明できるルールなどないでしょうから、
最終的には表引きでしょうね。
(ex.)
oasis => oases
mouse => mice
index => indices

# っと、oasisはcrisisと同じでルールに則るか…

No.1259

Re:英単語を複数形に
投稿者---iijima(2004/02/06 07:34:16)


最終的には次のような処理になるのかな.

(1) 複数形が数種類あるものは表引きで全種類を返す(ユーザーに選択させる)
index->indices,indexes, datum->data,datums など
 ↓
(2) 不規則((3),(4)に該当しないもの全て)ならば表引きで変換して返す
mouse->mice,sheep->sheep など
 ↓
(3) 語尾の形によるルールに則るものはそのルールで変換して返す
...x->...xes, ...fe->...ves など
 ↓
(4) 's'を付加して返す
book->books, brother->brothers など

英語の専門家の力が必要になりますね。
大変そうだ^^;

No.1260

Re:英単語を複数形に
投稿者---鷹(2004/02/06 09:59:46)


book fish のみの変換プログラムならどのようにすればいいですか?

No.1262

Re:英単語を複数形に
投稿者---iijima(2004/02/06 12:47:03)


>book fish のみの変換プログラムならどのようにすればいいですか?

No.1245 iijima(2004/02/04 22:28:56)ですでにサンプルとして"book"の変換プログラムは提示しました.
どこが理解できなかったのか,あるいは,あのサンプルではなにが不足でどのようにしたいのか,などをご説明ください.

それから,"fish"は,複数でも"fish"とする場合と,"fishes"とする場合がありますが,どのように変換することをお考えなのでしょうか.