外出自粛中でも楽しく過ごす!QAまとめ>>

課題でまったくわかりません
教えていただけるとありがたいです。

1: 下記関数と同じ動作をする関数を作成しなさい。
void *memset(void *s, int c, size_t n);
char *strcpy(char *s1, const char *s2);
char *strcat(char *s1, const char *s2);
size_t strlen(const *s);

2: 下記と同じ動作をする関数を作成しなさい。
char *strncpy(char *1, const char s2, size_t n);
char *strncat(char *1, const char s2, size_t n);

3:
long型の変数l1がLittle Endianで格納されている。
long型の変数l2にBig Endianで格納する関数を作成しなさい。

4: データ列を格納しなさい。
(1)LIST構造で格納する。
(2)LIST構造で、小さい順に格納する。
データ列:10,200,230、32、64,80,12,99,42,192

質問者からの補足コメント

  • できれば、プログラム作成依頼したいんですけどね…。
    無料でやってくれって言うのもダメなのはわかってるんですけど。。。

    プログラムの授業はあるんですけど、教科書ないんですよね。。。
    授業も口で言うだけで理解できてなくて。。。

    関数もぎりぎりわかってないレベルなんですよね・・・

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/05/08 02:07

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ああそうか, 1 はたとえば


void *foo(void *s, int c, size_t n)
{
return memset(s, c, n);
}
でもいいんだ.
    • good
    • 1

まず、どこがわからないかをはっきりさせること。


今のままでは、質問では無く「プログラム作成依頼」です。

1.
それらはC言語の標準ライブラリの関数です。
マニュアルを読めば、どんな動作をするものかがわかります。

すくなくとも、strcpy,strlenは初心者でも解ける簡単なものです。
strcatはstrcpyの応用です。「とある場所へstrcpy」と考えることができます。
memsetは void * の扱いが少し難しいだけで、やることは極簡単です。

2.
1.で strcpy,strcatができていれば、その判定を少し変えるだけです。

3.
Little EndianとBig Endianについて、理解できてますか?
シフト演算とビット毎のor,and演算で作れます。
long型、というのが少しだけやっかいです。

4.
リスト構造のところを、教科書でよく復習しましょう。
リストの基本操作の一つは、「指定した場所に新しい要素を挿入する」というものです。
Xを挿入するときに、 a<X<b となる場所に挿入すれば、順番に並びます。
この回答への補足あり
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング