
No.5ベストアンサー
- 回答日時:
交換法でやるなら
1) forの2重ループを組む pSrc と pDst
2) 2つの構造体のnameを使って strcmpなどの比較関数で大小をチェック
3) 並べ替えが必要な場合
4) pDstをリストから排除
pDstの前の要素があるなら
pDst->prev->next を pDest->next
pDstの次の要素があるなら
pDst->next->prev を pDest->prev
5) pDestの接続を更新
pDst->next を pWork
pDst->prev を pWork->prev
6) pSrcの接続を更新
pSrcの前の要素があるなら
pSrc->prev->next を pDst
前の要素が無いなら
pTop を pDstに更新
pSrc->prevをpDst
7) pSrc を pDstに更新
8) 1)へもどって繰り返す
といったコードを組めば出来ますよ
No.4
- 回答日時:
その構造体の定義やサンプルのデータなどを提示してみましょう
文字列の長さの違うものはどうするとか
短いものが優先、長さに関係なく先頭からオーダー順でソート
ABC,A,BB,ABD,AB,Ab
をどのようにソートしたいか
A,AB,ABC,ABD,Ab,BB
といった具合かなど ・・・
この回答への補足
構造体の定義は以下の通りです。
typedef struct address {
int s_flg; /* 検索フラグ */
char names[32];/* 名前 */
char tels[32];/* 電話番号 */
struct address *prev;/* 前へのポインタ */
struct address *next;/* 次へのポインタ */
}Address;
文字列の長さの違うものは長さに関係なくです。
>A,AB,ABC,ABD,Ab,BB
>といった具合かなど ・・・
の通りにしたいと思っております。
双方向リストの構造体は、先頭アドレスのみ管理し、最後のデータのnextにはNULLを入れております。
No.3
- 回答日時:
複数の文字列のソートなら普通に英字のみのソートと同様に出来ます
文字列内の文字の並び替えなら先頭から1バイトずつ見ていって2バイト文字か1バイト文字かを判定しながら並び替える必要があります
どっちでしょうか
この回答への補足
ご回答ありがとうございます。
複数の文字列のソートです。
ASCIIなどの1バイト文字文字と同じように出来るとは知らなかったです・・・。
ただ、もともとの文字コードとは違う順序でソートしたい場合はどうすれば良いのでしょうか?
例)ASCIIでは、# < * < 0 < … < 9
だけど、
* < # < 0 < … < 9
したい場合など・・・。
教えていただけますでしょうか?
No.2
- 回答日時:
>シフトJISの文字を、英語(A~Z)、数字(0~9)、ひらがな(あ~ん)でソートしたいのです
特に深く考える必要はありません。
半角の時と同じ方法でソートできます。
「ファイル名を指定して実行」に charmap と打ってみてください。
そこでフォントを MSゴシック にすると文字コードが見れます。
たとえば全角の あ~ん までは 順番に並んでいます。
全角 あ は 0x82A0
全角 い は 0x82A2
ですので 単純に数値として比較すればOKです。
(ただし、小さい文字"ょ"や、濁点付きの文字"だ"なども含まれます)
>使用する文字も上記だけなので、それ以外が入力された場合にチェックする機能
これ以外の文字をはじく場合は、
0~9、A~Z、あ~ん 以外の範囲かどうかチェックすればいいでしょう。
(上にも書きましたが、濁点付きの文字なども含まれるため、ひらがなに関しては配列に使用する文字(あ~ん)を入れておいて比較するしかないと思います)
ライブラリがあるかもしれませんので、
探してみるのをお勧めします。
この回答への補足
ご回答ありがとうございます。
さっそく試してみたのですが、どこに文字コードが出てくるのでしょうか?
あと、「ライブラリ」の意味が分かりません・・・orz
No.1
- 回答日時:
で、入出力部分は出来ているのでしょうか?
何かのコントロールに対する入力チャックなのか
ファイルから読み込むのか
出力はコンソールへ対してなのかメッセージボックスなのか
現在お使いのコードがあるなら支障の無い範囲で公開しましょう
プログラミングスタイルは何なのか WIN32SDK/MFC/STLなど
VC++のバージョンは何なのか VC6/2002/2003/2005/2008
ソートするのはどのようなものか
1つの文字配列をソートするのか
文字列の配列をソートするのか
文字列の配列ならば長さによる重み付けなどをするのか
この回答への補足
入出力は出来ています。
テキストファイルから読み取り、双方向リストの構造体へmallocしながら格納させています。
出力はコンソールです。
「プログラミングスタイル」が何の事なのか分かりませんorz
ソートするのは配列ではなく、双方向リストの構造体です。
説明不足で申し訳ございません・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 留学・ワーキングホリデー リスニング力、はつきますか?6カ月語学学校行き数年間お金を稼いでまた、6カ月間語学留学に行くのは? 1 2023/02/11 15:49
- マウス・キーボード 教えて! AppleのMagic Keyboard(JIS)をWindows 10で使用次第のですが 2 2022/06/01 18:07
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- 哲学 説得力を論理の強さまたは修辞の巧みさの2つに分析するにはどうすると良いでしょうか? 2 2022/06/27 05:51
- マウス・キーボード パソコンでのミスタイプ~こうなってしまうとイラっとしませんか?→pasokonndenomisuta 2 2023/08/03 08:41
- Java VScodeのターミナルの文字化けについて 1 2022/09/27 22:19
- 英語 英語の数字表記で、2桁の数字の部分だけハイフンを付ける理由について 5 2023/04/09 17:30
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- 大学受験 大学受験の参考書について 高3の私文志望(今のところ中堅私立大)です。 基礎固めをしたいです。 持っ 3 2023/08/17 13:47
- その他(IT・Webサービス) 電気ガスの手続きで文字を入力したいのですが、入力したい文字がアルファベットなんです。ですが、文字がJ 1 2023/05/14 18:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ArrayList とSortedList
-
SQLで検索結果の出力件数指定?
-
ArrayListのソートについて
-
Double型ソート方法
-
Fortran77で多次元配列を並び替...
-
jqgrid で 2から3 階層以上の j...
-
シフトJISのソート
-
C# DataGridViewのソート
-
sortの優先キーについて(スプレ...
-
明日までの宿題で困っています...
-
qsort/クイックソートについて
-
多次元配列のソート方法
-
System.IO.Directory.GetFiles...
-
ソートのアルゴリズム
-
リストビューのソートが2回必要
-
C# ArrayListを二次元配列のよ...
-
こんなCGIを知りませんか?
-
C言語のリストのソートについ...
-
C言語・要素除去
-
シェルソートの順位性
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
C# DataTableの行をソートしてD...
-
VBA基本構文の作り方 2列の...
-
ファイル名「1.jpg ~10.jpg~...
-
あるディレクトリ内のファイル...
-
GridViewで列のソートを無効に...
-
C言語・要素除去
-
excel VBA の条件をつけての列...
-
Excelですべての組合せ(重複組...
-
VBScriptで配列のソートをする...
-
配列の問題
-
ブック.csvを開かずに他のブッ...
-
2次元配列を複数項目でソートし...
-
構造体配列のソート
-
listboxの並び替え
-
構造体のリストをソートしたい。
-
リスト構造のソートで悩んでま...
-
文字列をソートする方法
おすすめ情報