ページ 11

C 言語 番号振りなおしにつおて

Posted: 2021年8月31日(火) 17:12
by Auran
c言語で構造体に1から順にナンバーをつけて、それをソートしてからまた、1からつけなおすにはどうすれば良いんでしょうか?

初期化のための関数を作り、代入してからfor構文を使う感じでしょうか?

自分がしたいのは例えば下のような用意してある構造体をあいうえお順に並び替えて②①③にしてから、それを新しく上から①②③に書き換える関数を作りたいのですがどうすればいいのでしょうか?


構造体①
 1番号① 
 2名前い●■■
構造体② 
 1番号②
 2名前あ●■■
構造体③
 1 番号③
2名前お●■■

Re: C 言語 番号振りなおしにつおて

Posted: 2021年8月31日(火) 19:21
by みけCAT
Auran さんが書きました:
3年前
c言語で構造体に1から順にナンバーをつけて、それをソートしてからまた、1からつけなおすにはどうすれば良いんでしょうか?
希望の処理を行うコードを書き、実行すればいいです。
Auran さんが書きました:
3年前
初期化のための関数を作り、代入してからfor構文を使う感じでしょうか?
自分の書きやすい形、そしてできれば後日の修正や改良がしやすい(保守性が高い)形で書けばいいでしょう。
Auran さんが書きました:
3年前
自分がしたいのは例えば下のような用意してある構造体をあいうえお順に並び替えて②①③にしてから、それを新しく上から①②③に書き換える関数を作りたいのですがどうすればいいのでしょうか?
1. あいうえお順に並び替える
2. 番号を書き換える
という処理を行う関数を作ればいいでしょう。
あいうえお順に並び替える処理は、入力されるのがひらがなだけであれば、
Shift_JIS(829F~)やUTF-8 (e38181~) のひらがなは文字コード順があいうえお順になっているので
素直に strcmp() などで比較できるかもしれないですが、
カタカナ、記号、漢字などが混ざってくると難しいかもしれません。
要求仕様によっては、「諦める」「外注する」という選択肢もアリかもしれません。

コードを書かずに考え込むだけではなく、実際にコードを書いてみて、
詰まった所でそのコードを提示してまた質問をする、というのがいいと思います。