• ベストアンサー

標準ライブラリ関数

C言語の勉強を始めたばかりです。 標準ライブラリ関数というのがたくさんありますが、実際のソースをのせているサイトってありませんか?たとえばstrcmpを使わずにアルファベット順に並べ替えるプログラムを作ってみたいのですが。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.4

コンパイラからライブラリまですべてソースコード公開している処理系があります。 標準ライブラリは言うに及ばず、拡張ライブラリや機種依存部分も! ご存知かとは思いますが、GCCです。 GCCで使用しているglibcに標準ライブラリは含まれています。 ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.6.tar.gz こちらはLinux用Threadの拡張ライブラリ ftp://prep.ai.mit.edu/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz localeの拡張ライブラリ ftp://prep.ai.mit.edu/pub/gnu/glibc-localedata-2.0.6.tar.gz cryptの拡張ライブラリ ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.6.tar.gz cryptは米国外輸出規制がかかっているのでご注意! 標準ライブラリは標準入出力や動的メモリ管理を含むので環境(ハードウェア、OS、コンパイラ)に依存する部部が多く、単純にソースコードを取得しても使えない可能性がありますので注意してください。

dell_co
質問者

お礼

お礼が遅くなってすみません。 ftpが見られなくて、ご紹介いただいたものも見られていない状態です。が、方法を調べます。ありがとうございました。

その他の回答 (3)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

お使いのコンパイラは何でしょう? VisualC++ならソースついてますよ。

dell_co
質問者

お礼

お礼が遅くなってすみません。 VisualC++ではないので、ちょっと見当たらなかったのですが・・・。もう一度確認してみます。ありがとうございました。

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

文字列処理関数などは比較的簡単に自分で同じ機能を実現できます。 strcmp()、strlen()など自力で作ってみてはいかがでしょう。 役に立つ関数のあるサイトとしてこちらを紹介しておきます。 http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/index.html

参考URL:
http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/index.html
dell_co
質問者

お礼

お礼が遅くなってすみません。 文字列処理関数を自作にしてみたくてこの質問をさせていただきました。HPを参考にがんばります。ありがとうございました。

回答No.1

ご希望に添えるかどうかわかりませんが、 こちらのサイトは結構多く、使用例が載っていると思います。 作者の方には無断での紹介となりますが、 本当にわかりやすいサイトですので、ぜひ一度、ご覧ください。 http://www.geocities.co.jp/SiliconValley-Bay/8490/programming.html

参考URL:
http://www.geocities.co.jp/SiliconValley-Bay/8490/programming.html
dell_co
質問者

お礼

お礼が遅くなってすみません。 まだ全然理解の足りない段階なので、HPを参考にがんばってみたいと思います。ありがとうございました。

関連するQ&A

  • 標準ライブラリー関数を使用せずに文字出力

    はじめまして、C言語初心者です。 研修で、C言語を学ぶことになったのですが研修先から頂いた練習問題で「練習のため標準ライブラリー関数は使わない」で文字列を連結するための関数を作ることになったのですが、標準ライブラリー関数を使用せずに文字出力はできるのですか??

  • gprofはprintfのようなCの標準ライブラリ関数で使われたコスト

    gprofはprintfのようなCの標準ライブラリ関数で使われたコストを どのように認識するのでしょうか? 普通にプロファイルしたいプログラムをmakeしても、標準ライブラリの 関数が処理時間・呼ばれた回数の一覧に出てきません。 gprofは次のどちらとして処理しているでしょうか? ・呼ぼうとしてる親関数の処理時間に、標準ライブラリ関数の時間が含まれる。 ・標準ライブラリ関数の処理時間はまるまる抜け落ちる Linux環境(SLES 10)で、gprofを使ってCで書かれたプログラムの チューニングを行えるかチェックしています。 ただし、OSレベルまでいじりたくないので、-pgオプションをつけて ライブラリを再コンパイルするのは考えていません。 以上、よろしくお願いします。

  • C言語のライブラリ

    C言語の初心者でただいま勉強中です。 今ちょうど、関数のところでライブラリについて 勉強しているのですが ライブラリのソースがどうなっているのか気になっております。 どうにかしてライブラリのソースを見る方法はないでしょうか?

  • 標準ライブラリ関数の自作について質問です。

    C言語初心者の学生です。 標準ライブラリ関数のstrncpyと同じ機能の関数を自作でつくる場合どのようにすれば良いでしょうか。 mystrncpy(char *s1,char *s2,int n) { } かっこの間を埋める形でお願いします。 同じようにstrncat、strnchr、strnstrも答えていただけると幸いです。 すべてではなく4つのうち1つからでも結構ですのでよろしくお願いいたします。

  • システムコールと標準ライブラリの正しい使い方を教えて下さい

    システムコールって何でしょうか。 C言語初心者なので、変な質問だったら、すみません。 システムコールと標準ライブラリにおける、関数の違いを教えて頂けませんでしょうか。 例えばファイル入出力で用いる openとfopenは何が違うのでしょうか? 私はそもそも、システムコールというものが判っていない状態です。 いつも標準ライブラリを参考にしていたものですから・・。 更に似た使い方をすると思いますが、使える範囲等どちらが広いのでしょうか。 よろしくお願いします。

  • C言語のライブラリ関数の勉強の仕方

    はじめまして、私はC言語を勉強中の初心者です。 基本的な構文などを理解して、標準ライブラリ関数を勉強して行こうと思ったのですが、うまく勉強できずに苦戦しています。そこで2つ聞きたいことがあります。 1.普通標準ライブラリ関数はどの程度覚えるものなのでしょうか? 徹底的に網羅するのか、一般的なところは押さえて後は適当にやるのか、などを知りたいです。 2.関数はどうやって勉強したらいいのでしょうか? 私は細かいところまで徹底的に覚えたいタイプで、今は、自分のコンパイラ(VC++ 2008)のincludeフォルダにあるヘッダファイルを調べ、関数のプロトタイプ宣言をしてあるところを見つけて関数名を洗い出し、その関数名で検索を掛けて関数を覚えていく、という方法を取っているのですが、これだと恐ろしく効率が悪いです。皆さんはどうやってライブラリ関数について勉強していったのでしょうか? 質問したいのは上記の2点です。回答よろしくお願いします。

  • Linuxで、標準Cライブラリが読み込まれず、C言語プログラミングができません・・・

    僕の問題はタイトルの通りで、標準Cライブラリが読み込まれていないようで、C言語プログラミングができません。 ubuntuのオフィシャルから日本語ローカライズドDesktopCDをダウンロードして、空のHDDにインストールしました。 ですが、gnome-terminalからccコマンドでプログラムをコンパイルしても、標準Cライブラリにあるはずの<stdio.h>が認識されず、続くprinft関数も読んでくれません。 これはどうしてでしょうか?LinuxはデフォルトでCやらJAVAやらのプログラミングの環境が整っているものだと思っていたので、戸惑っています。何か、セットアップが必要なのでしょうか。 ちなみに、gccでも、標準ライブラリは読み込まれませんでした。

  • ライブラリのリンクについて。

    ふと、疑問に思ったので質問させてもらいます。 C言語などでプログラムを作る時、ライブラリをリンクさせて使うと思いますが、その場合プログラムを実行させた場合メモリー上ではどうなるのか教えた貰いたいです。 例えばprintf関数を使う場合その命令そのものがプログラムに組み込まれてメモリーに読み込まれているのかということです。 前にどこかで読んだ記憶があるのですが、いろいろなところから呼び出される標準的なものはシステムで一箇所にありそれを使うなどということがあったような無かったような記憶があやふやですが見た覚えがあるので気になってしまいました。 あとライブラリなどから一つだけ関数を使う場合、使わない他の関数などもメモリーに読み込まれていたりするのでしょうか? よく使う自分で作った関数を一つのファイルにまとめ、それを定義したヘッダーファイルをincludeした場合も同様で使わないほかの関数はどうなるのでしょうか?

  • 便利なライブラリorテクニック

    javascriptとC言語は良く似ていますが、Cには次の標準関数がありません。 indexOf, Substring, CharAt replace, split 何か便利なライブラリはあるのでしょうか? あと、スクリプト言語でよくヒアドキュメント(ソースに埋め込み) が簡単にできますが、C言語は(改行がたくさんある場合)別ファイルにして読み込むという方法しかないのでしょうか?

  • fioRead()という関数は標準装備なんでしょうか?

    お世話になります。 私の質問履歴をみていただければ分かると思うのですが、 現在ソースを読み解く作業をしています。 その中で、「fioRead()」という関数がでてきたのですが、 これはC言語に標準で入っている関数なのでしょうか? (openやioctlとかと同じ種類なのでしょうか?) もし標準の関数なのでしたら、その使い方や機能などについても ご教授いただければと思います。 大変お手数をおかけいたしますがよろしくお願いいたします。