【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.20009

単数形を複数形で出力
投稿者---ゆ〜(2005/02/16 18:15:09)


はじめまして、名詞の単数形を入力すると複数形に変換し出力するようなc言語でのプログラムを作りたいので、if文を使って書いていたのですがどうにもうまいようにできません。なので、どなたかご教授お願いします。
例)watch → watches


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:単数形を複数形で出力 20010 通りすがり 2005/02/16 18:31:45
<子記事> Re:単数形を複数形で出力 20011 Blue 2005/02/16 18:34:44
<子記事> Re:単数形を複数形で出力 20012 ゆ〜 2005/02/16 18:52:53


No.20010

Re:単数形を複数形で出力
投稿者---通りすがり(2005/02/16 18:31:45)


その質問は、さきほどあなたが削除した質問と何が違うの?
言われたことに単に腹を立てて削除したの?

とりあえずのヒントは、文字列はそのまま if では比較できないので、
MSDNあたりで文字列操作とか調べてください。

答える人がちゃんと答えてくれる質問方法を考えてね。


この投稿にコメントする

削除パスワード

No.20011

Re:単数形を複数形で出力
投稿者---Blue(2005/02/16 18:34:44)


(1)大部分の名詞・・・語尾に-sをつける。
(2)-s,-ss,-ch,-sh,-x,-oで終わる語・・・語尾に-esをつける。
(3)「子音字+y」で終わる語・・・yをiにかえて-esをつける。
(4)-f,-feで終わる語・・・f,feをvにかえて-esをつける。

ということなので 文字列の末尾1文字もしくは2文字を取得し、パターン分けするのかな。

文字列長はstrlen, 文字列比較はstrcmp,strncmpあたりを使います。
(2文字までだからcharの比較を2回やるほうがいいかな)



この投稿にコメントする

削除パスワード

No.20013

Re:単数形を複数形で出力
投稿者---Ban(2005/02/16 19:39:05)


さらに、単複同形とか、特殊変化とかを先に確認する
必要があるかと思いますが、これには辞書の作成が必須かと。


この投稿にコメントする

削除パスワード

No.20037

Re:単数形を複数形で出力
投稿者---Blue(2005/02/17 09:30:13)


>さらに、単複同形とか、特殊変化とかを先に確認する
>必要があるかと思いますが、これには辞書の作成が必須かと。

入力が名詞であるか判断して、これが固有名詞でないかを判断する処理が
その前に必要そうですね。(英語の知識あんまないけどいってみるw)

相当難しいかと。ただ単に私が先にあげた処理だけでとりあえずはいいような。




この投稿にコメントする

削除パスワード

No.20038

Re:単数形を複数形で出力
投稿者---円零(2005/02/17 10:29:26)


>>さらに、単複同形とか、特殊変化とかを先に確認する
>>必要があるかと思いますが、これには辞書の作成が必須かと。

>入力が名詞であるか判断して、これが固有名詞でないかを判断する処理が
>その前に必要そうですね。(英語の知識あんまないけどいってみるw)

それはまた別のプログラムなのでは。
このプログラムに文字列が渡されたときにはそれは可算名詞であるという前提で良いのではないでしょうか。

その上で、mouseだのfocusだの、特殊な変化をする単語については
何らかの手段で登録された語と何らかの手段で比較して検出し、
もし一致するものがある場合には単純に登録された複数形と置き換え、
それ以外の場合にのみルールに従った変形をするようにすれば良いと思います。

単にstrcmpで比較するのであれば結構単純だと思いますよ。
特殊変化する名詞を集めるのが面倒ではありますが。

ただ、"antenna"みたいな、意味によって複数形が変わる単語は困りものですね。
文脈からアンテナなのか触角なのか見分けるというのは素人の手には余る問題ですし。


この投稿にコメントする

削除パスワード

No.20040

Re:単数形を複数形で出力
投稿者---Ban(2005/02/17 13:58:11)


>特殊変化する名詞を集めるのが面倒ではありますが。

こういう意味で、
> これには辞書の作成が必須かと。
と書きました。
処理実装やデータ形式は、独自でも何でもいいと思います。
# C++ なら std::map あたりで簡単に、とか。


この投稿にコメントする

削除パスワード

No.20012

Re:単数形を複数形で出力
投稿者---ゆ〜(2005/02/16 18:52:53)


先ほどはこちらの利用上の注意もよく読みもせず、投稿してしまい
とてもマナー不足と思い削除し、新しく投稿してみました。
返信とてもありがとうございました。また自分でがんばってみます^0^




この投稿にコメントする

削除パスワード

No.20014

Re:単数形を複数形で出力
投稿者---REE(2005/02/16 19:46:12)


>先ほどはこちらの利用上の注意もよく読みもせず、投稿してしまい
>とてもマナー不足と思い削除し、新しく投稿してみました。

返信された発言を削除する方がより大きなマナー違反です。




この投稿にコメントする

削除パスワード

No.20039

Re:単数形を複数形で出力
投稿者---nop(2005/02/17 10:42:37)


>先ほどはこちらの利用上の注意もよく読みもせず、投稿してしまい
>とてもマナー不足と思い削除し、新しく投稿してみました。

よく読んでも、守られていなければ意味がありません。

> ※学校の課題の丸投げ禁止!
> ※環境(OSとコンパイラ)や症状は具体的に詳しく!

これらはどこに反映されているのでしょうか?


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧