[Libft] Subject

3577 ワード

Created: May 14, 2021 9:47 PM
本プロジェクトの目的は,共通関数を再実現するCライブラリ符号化である.他のすべてのプロジェクトで使用できます.
Introduction
非常に有用な標準関数が使用できない場合、Cプログラミングは非常に冗長になる可能性があります.このプロジェクトでは、これらの関数を再作成し、それらを理解し、これらの関数の使用方法を学ぶ機会を提供します.このライブラリは、後で行うCプロジェクトに役立ちます.このプロジェクトでは、作成した関数のリストを拡張する機会を提供します.年間を通じてlibftを拡張します.
Common Instructions
  • プロジェクトはNormルールに合致する必要があります.追加のファイル/関数がある場合、これらのファイル/関数はパラメータチェックに含まれ、パラメータエラーがある場合は0点が得られます.
  • 関数は、定義されていない動作と予期せずに中断できません.(例えば、セグメント障害、buserror、doublefree等)
  • 必要に応じてheapに割り当てられたすべてのメモリ領域を解放する必要があります.メモリの漏洩は許可されていません.
  • が必要な場合は、Makefileをコミットする必要があります.コンパイルには、-Wall-Wextra-Werrorタグを指定します.そしてMakefileは諦められない
  • makefileには、少なくとも$(NAME)、all、clean、fclean、およびreが含まれている必要があります.
  • プロジェクトにボーナスを発行するには、makefileにボーナスルールを含める必要があります.プロジェクトのメインセクションで禁止されているすべての異なるタイトル、ライブラリ、または関数を追加する必要があります.ボーナスはbonusでなければなりません.名前の付いた別のファイルに存在する必要があります.義務的な部分とボーナス部分は個別に評価されます.
  • プロジェクトでlibftを許可する場合は、ソースコードとその関連makefileを関連makefileとともにlibftフォルダにコピーする必要があります.プロジェクト内のMakefileは、Makefileを使用してライブラリをコンパイルし、プロジェクトをコンパイルする必要があります.
  • がジョブをコミットしていなくても評価されません.プロジェクトのテストプログラムを作成することをお勧めします.それはあなたの仕事と同業者の仕事を簡単にテストする機会を提供します.守備中にこれらのテストプログラムが特に役に立つことに気づきます.実際、弁護の間、あなたのテストプログラムと評価された同僚のテストプログラムを自由に使用することができます.
  • に割り当てられたgitリポジトリでジョブをコミットしてください.gitリポジトリ内のジョブのみが評価されます.あなたの課題がdeepthoughtに割り当てられて評価されると、同僚の評価の後に完了します.Deepthought評価中にエラーが発生した場合、評価はすぐに停止します.
  • Mandatory part
  • グローバル変数は使用できません.
  • 複雑な関数を作成するためにサブ関数が必要な場合は、ライブラリとともにパブリッシュされないように、これらのサブ関数を静的(静的)として定義する必要があります.
  • リポジトリルートディレクトリ内のすべてのファイルをコミット
  • Part 1 : Libc functions
  • 部では、manで定義されたようにlibc関数セットを再符号化する必要がある.関数は、元のタイプと同じプロトタイプを宣言する必要がある場合があります.関数名の前にftを付ける必要があります.
  • たとえばstrlen:ft_strlen. 再符号化が必要な関数の一部のプロトタイプでは、「制限」制限子が使用されます.このキーワードはc 99標準の一部です.したがって、プロトタイプに含め、-std=c 99タグを使用してコンパイルすることは許されません.
    次の関数が必要です.これらの関数には外部関数は必要ありません.
    memset • bzero • memcpy • memccpy • memmove • memchr • memcmp • strlen • strlcpy • strlcat • strchr • strrchr • strnstr • strncmp • atoi • isalpha • isdigit • isalnum • isascii • isprint • toupper • tolower
    次の関数もmalloc関数を使用して再符号化する必要があります.
    calloc • strdup
    Part 2 : Additional functions
    第2のセクションでは、libcに含まれていない関数セットまたは他のフォーマットで含まれていない関数セットを符号化する必要があります.実装時には、一部の関数が第1の部分で役立つ場合があります.
    substr • strjoin • strtrim • split • itoa • strmapi • putchar_fd • putstr_fd • putendl_fd • putnbr_fd
    関数の詳細については、次のPart 2ページを参照してください.
    Bonus part
    必要な部分を成功裏に完成すれば、さらに楽しむことができます.最後の部分を加点と見なすことができます.メモリと文字列を処理する関数を使用すると便利ですが、リストを処理する関数を使用すると便利です.
  • ボーナスを創出すれば、libft.aライブラリに追加の関数が追加されます.
  • とこの部分のタイトル.cファイルにボーナスを追加する必要はありません.独自の加算関数を含むファイルにのみ加算を追加します.
  • は、リスト内の要素を表す構造を使用します.この構造をlibftに設定します.hファイルに追加する必要があります.
  • typedef struct    s_list 
    { 
    		void          *content; 
    		struct s_list *next; 
    }                 t_list;
    次の
  • 関数を実装し、ライブラリに追加します.これらの関数は、リストを簡単に使用できます.
  • ft_lstnew • ft_lstadd_front • ft_lstsize • ft_lstlast • ft_lstadd_back • ft_lstdelone • ft_lstclear • ft_lstiter • ft_lstmap
  • 関数の詳細については、次のBonusページを参照してください.
  • 適切だと思ったら、libftに任意の関数を自由に追加できます.