2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【C言語】 便利な自作関数 【最高】

1 ::02/10/08 21:28
おまえらが作った便利な関数を公開しる!

2 :デフォルトの名無しさん:02/10/08 21:29
void rect(int n) {
  printf("┏┓\n");
  swich(n) {
  case 10:printf("┃┃\n");
  case 9:printf("┃┃\n");
  case 8:printf("┃┃\n");
  case 7:printf("┃┃\n");
  case 6:printf("┃┃\n");
  case 5:printf("┃┃\n");
  case 4:printf("┃┃\n");
  case 3:printf("┃┃\n");
  case 2:printf("┃┃\n");
  case 1:printf("┃┃\n");
  }
  printf("┗┛\n");
}


3 :デフォルトの名無しさん:02/10/08 21:30
Loop:
Ping 1のIP
goto Loop

4 :デフォルトの名無しさん:02/10/08 21:30
3get

5 :デフォルトの名無しさん:02/10/08 21:32
void giko(char shine[10]){while(1){printf("%sは氏ね",shine);}}
/*shineには、通常>>1と入力します。*/

6 :デフォルトの名無しさん:02/10/08 21:33
int u_motherfucker(int a,int b,char *str,FILE *fp);

アセンブリで書いたヤツとリンクさせるので

7 :デフォルトの名無しさん:02/10/08 21:33
ま た 糞 ス レ で す か ?

┌―――――――――――――┐
|(・∀・)ニクコプーンクエ!.      |×|  |
├―――――――――――――┤
>>1                    |
|                    |
|(・∀・)つ∴ ニクコプーンクエ!     |
|                    |
|       ┌――――┐       |
|       │  OK   |       |
|       └――――┘       |
└―――――――――――――┘




8 :デフォルトの名無しさん:02/10/08 21:35
void one_aho(void){printf(">>%dはアホ\n",1);}

9 :デフォルトの名無しさん:02/10/08 21:44
void swap(int *px,int *py)
{int temp;temp=*px;*px=*py;*py=temp;}
結構有名なswap関数

10 :デフォルトの名無しさん:02/10/08 21:44
namespace _1 {
namespace _2 {
namespace _3 {
namespace _4 {
namespace _5 {
// 以下略

11 :デフォルトの名無しさん:02/10/08 22:04
関数ではないが

#define BIGIN int main(void){
#define END return 0;}

これでDelphiになる。

12 :デフォルトの名無しさん:02/10/08 22:08
#define if if(
#define then )
#define begin {
#define end };
#define while while(
#define do )


13 :デフォルトの名無しさん:02/10/08 22:14
#define cout<< printf(
#define <<endl )

14 :デフォルトの名無しさん:02/10/08 22:16
void baka(void)
{
printf(">>1はアホ\n");
}

15 :デフォルトの名無しさん:02/10/08 22:27
>>12
これって単語の一部とか意図してないところも変換されちゃってエラーになったりしないの?

16 :デフォルトの名無しさん:02/10/08 22:35
>>15
> これって単語の一部とか意図してないところも変換されちゃってエラーになったりしないの?

#define if if(
#define then )
#define begin {
#define end };
#define while while(
#define do )

void foo(int hiendmachine, int letsbegin)
{
 if hiendmachine == 0 then
 begin
  return;
 end
 while letsbegin < hiendmachine do letsbegin++;
}

ぐらいなら大丈夫だよ。

17 :デフォルトの名無しさん:02/10/08 22:43
#define interface class
#define polymorphic virtual
#defube no_implement =0


18 :デフォルトの名無しさん:02/10/08 22:44
#define defube define

19 :デフォルトの名無しさん:02/10/08 22:46
>>18
できるの?

20 :デフォルトの名無しさん:02/10/08 22:50
知らん

21 :デフォルトの名無しさん:02/10/08 23:09
#define then )
int inthen,n=9;
for(inthen=0; inthen<n; inthen++)
  printf("%d",inthen);

22 :デフォルトの名無しさん:02/10/08 23:14
>>19-20
できねーみたいだ。

C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\MY DOCUMENTS\DEVELOPMENT\test\test.cpp(10) : fatal error C1021: シャープ記号 (#) の後にくる文字群が、有効なプリプロセッサ ディレクティブの形式になっていません。'defube'

23 :デフォルトの名無しさん:02/10/08 23:53
kimoxtu

24 :デフォルトの名無しさん:02/10/09 21:36
良スレ あげ!

25 :デフォルトの名無しさん:02/10/09 21:47
>>24
糞スレ揚げるな。氏ね

26 :デフォルトの名無しさん:02/10/09 21:47
>>24

つーか、上げたかっただけだろ。

27 :デフォルトの名無しさん:02/10/09 22:41
#include <stdio.h>

#define T(a) \
void a##_swap(a *lhs, a *rhs){ \
a tmp; \
tmp = *lhs; \
*lhs = *rhs; \
*rhs = tmp; \
}\


T(int);

int main(){
int x = 10;
int y = 99;
int_swap(&x, &y);
printf("x = %d, y = %d\n", x, y);
return 0;
}

28 :デフォルトの名無しさん:02/10/10 18:47
良スレだ!これは凄い!
やっぱり>>1はすごいなぁ。
あげ!

29 :デフォルトの名無しさん:02/10/10 18:56
最近は糞スレを揚げる馬鹿どもが増えたなぁ

30 :デフォルトの名無しさん:02/10/10 19:11
ageてんのは間違いなく>>1でしょ。
厨が増えたように感じるのはこのスレのせいじゃないのかと予想してみる。

http://pc3.2ch.net/test/read.cgi/tech/1034085217/

31 :デフォルトの名無しさん:02/10/11 09:50
これはもしかしたらみんな使ってますか
void debug( const char *format, ... ) {
  FILE *fp;
  va_list argptr;
  if ( (fp=fopen( "debug.log", "a")) != NULL ){
    va_start( argptr, format );
    vfprintf( fp, format, argptr );
    va_end( argptr );
    fclose(fp);
  }
  return;
}
va_list の使い方が正しいのかどうかわかんないけど。

あと,自作じゃないんで紹介だけなんだけど
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/printf.3.html
これの例に挙げられてる make_message() 関数はわりと重宝してます。
# ていうか manpage だから常識の範囲内? 笑い

32 :デフォルトの名無しさん:02/10/14 18:15
      キ        //   /::::://O/,|      / これは……
      ュ     / |''''   |::::://O//|     /   半ば 無駄レス
      .ッ       \ |‐┐ |::://O/ ノ   ヾ、/
       :       |__」 |/ヾ. /    /  だが 半ば……
         ヽ /\  ヽ___ノ / . へ、,/          良レス…!
        /  ×    /  { く  /
        く  /_ \   !、.ノ `ー''"
  /\        ''"  //
 | \/、/           ゙′
 |\ /|\ ̄
   \|

33 :デフォルトの名無しさん:02/10/14 18:19
>>31
いちいちopen/closeしてたんでは重すぎるだろ

34 :デフォルトの名無しさん:02/10/14 18:24
やっぱり、一番良い関数はrandだろ。
自作じゃないけど

35 :デフォルトの名無しさん:02/10/18 19:35
#include "windows.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
MessageBox( NULL,
"  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  \r\n"
"< しいたけですが、何か?\r\n"
"  \_________  \r\n"
, "しいたけ", MB_ICONSTOP );

return 0;
}


36 :デフォルトの名無しさん:02/10/19 22:15
void unco(char *hoge)
{
hoge="unco";
}

37 :デフォルトの名無しさん:02/10/19 23:10
>>36
お前このコードで何したいんだ ?
ネタコードにしても、ひどいよ。

38 :manko_chinko ◆GLc2rpKRNM :02/10/19 23:25
void a(){
putchar('a');
}

39 :アフォルトの名無しさん:02/10/20 01:35
                  _ , -―-、
             , 'ニニニ、::::(0::::::::::ヽ、
               ̄ ̄ヽ':::::::::::::::  ヾ 見てごらん >>1 を あれがリアル厨房だよ
                  ):::  ....   \
                 /    ::::::::::::::::::ヽ
                 /      :::::::::::::::::|
                /       :::::::::::::::::|
                /        :::::::::::::::::::|
               /        ::::::::::::::::::::|
               |         :::::::::::::::::::::|
              . |         :::::::::::::::::::::|
         _ , ―-、|         /::::::::::::::/::::|
         \ヲ'⌒ヽ:|         /:::::::::::::::/::::::|
           ト`_ ノ::|        /:::::::::::::/::::::::|
          人;;;;;;;::::;:|        |:::::::::::::/::::::::/
         /γ  `:::::|       |::::::::::::/::::::::/
         / (  ヽ   :::|       |:::::::::/::::::::/   ふーん なんだか
        {  }  }  ::|       |::::::::{::::::::/    生きてる価値なさそうだね ぱぱ
         | /   }   ::|       .ヽ::::|:::::::/
         } {  /   ::|       .ヽノ ::::/
         } |  (    :λ         :::|
        ( ヽ、 )    ノヽ        ::::|
         ヽ,   ~    〈  ト、_  |    ::::::ヽ、
         (     ,' ノ  |   |~7  ::::::::::::::`ヽ、
          ヽ,、,、,γ' ノ, -‐W~フ {  ト、:::::::::::::::::::ヽ、
         ∠____ト-┘z__,―' ̄Σ Z  ̄ヽ―-、_ノ
                   '―z_,┴'~

40 :デフォルトの名無しさん:02/10/20 01:47
void main(void){
 printf("%c%c%c%c",U(),N(),K(),O());
}

char U(void)
{
  return 'U';
}
char N(void)
{
  return 'N';
}
char K(void)
{
  return 'K';
}
char O(void)
{
  return 'O';
}

41 :デフォルトの名無しさん:02/10/20 04:30
#define swap( x, y ) main()

42 :デフォルトの名無しさん:02/10/20 05:30
【糞言語擁護】 便利な自作自演 【最高】

43 :デフォルトの名無しさん:02/10/21 01:16
Eiffel さいこー!

44 :デフォルトの名無しさん:02/10/21 01:20
便利な自作関数じゃなくて意味の無い自作関数ばかりじゃん。

45 :デフォルトの名無しさん:02/10/21 01:23
char *ataiga0kadouka(int n)
{
return n==0?"0ですYO!":"0じゃないYO!";
}


46 :デフォルトの名無しさん:02/10/21 01:43
Pixmap BMPLoad();

47 :デフォルトの名無しさん:02/10/21 01:46
このスレは有料スレです。
便利な関数を購入したい方は@niftiyIDを取得してください。


48 :デフォルトの名無しさん:02/10/21 01:52
game_init();
game_main();

49 :デフォルトの名無しさん:02/10/21 02:02
C++用の数字判定関数(マイナス,小数点も可)作ったけど公開すると馬鹿にされそう・・

50 :デフォルトの名無しさん:02/10/21 02:06
>>49
匿名なんだからとりあえず公開して、馬鹿にされた箇所直せばいいだろ。
うまくいきゃデバッグまでしてくれるんだから、使わにゃ損損。


51 :デフォルトの名無しさん:02/10/21 02:19
>>49
だったら書くなよ。
変に興味モッチャウじゃないの〜

52 :デフォルトの名無しさん:02/10/21 02:45
>>49
それじゃ小数点がカンマの所に対応できないだろ。バーカバーカ。

53 :49:02/10/21 03:59
bool JudgNumber(char *pCharData,bool FlgDecimalPoint,bool FlgMinus){
intDecimalPoint = 0;
if(!(*pCharData == '1' || *pCharData == '2' || *pCharData == '3' || *pCharData == '4' || *pCharData == '5' || *pCharData == '6' ||
*pCharData == '7' || *pCharData == '8' || *pCharData == '9' || *pCharData == '0' || *pCharData == '-'))
return FALSE;
if(*pCharData == '-' && !FlgMinus)
return FALSE;
pCharData++;
while(*pCharData != '\0'){
if(!(*pCharData == '1' || *pCharData == '2' || *pCharData == '3' ||
*pCharData == '4' || *pCharData == '5' || *pCharData == '6' ||
*pCharData == '7' || *pCharData == '8' || *pCharData == '9' ||
*pCharData == '0' || *pCharData == '.'))
{
return FALSE;
}
if(*pCharData == '.')
DecimalPoint++;
pCharData++;
}
if(DecimalPoint > 1)
return FALSE;
if(DecimalPoint == 1 && !FlgDecimalPoint)
return FALSE;
return TRUE;
}

54 :49:02/10/21 04:00
引数(1):判断する文字列の入ったcharポインタ
引数(2):小数点の有無  TRUE−有り FALSE:無し
引数(3):マイナスの有無 TRUE−有り FALSE:無し
戻り値 :TRUE−数字 FALSE−数字ではない

到ってオーソドックスかつわかりやすいプログラムです。。

55 :デフォルトの名無しさん:02/10/21 05:39
Cには数値の判定にisdigitという関数があるよ

56 :デフォルトの名無しさん:02/10/21 05:40
s/数値/数字/

57 :デフォルトの名無しさん:02/10/21 09:58
>>55
叩くならソースを叩け

58 : :02/10/21 10:42
>>53
"-"と"-."がTRUEなのはいかがなものか。

59 :アフォルトの名無しさん:02/10/21 15:33
>>57
55 のどこが、ソースに対する突っ込みじゃないんだ?
>>55
コーディングの上では・・・。
pCharData == NULL の場合は?
戻り値が bool 型なら true / false を返せ。
数字かどうかの判定を 2 箇所で行うな。
bool 型を使っている事以外、これはどう見ても C++ ではなく C だ。
名前が Judg なのはいかがなものか。

仕様の上では・・・。
正符号表現 "+12345" 等は FALSE か?
指数表現 "-2.345678e-012" 等は FALSE か?
単位つき表現 "640 pixels" 等は FALSE か?
atof() はいずれも有効な数値を返す。

60 :49:02/10/21 23:23
うーん・・、やっぱり穴だらけでしたね。。(汗

>>58-59
そうですね・・。

>>55
某掲示板で無いとの事で自作してみたんですがあったんですね・・。

レスくれた方ありがとうございました。m(_ _)m

61 : :02/10/22 00:40
>>59
なんでそこでatofが出てくるかね?
atofは、引数が""だろうが"abc"だろうが"1.2.3"だろうが
それなりの値を返すが、それでいいのか?

62 :デフォルトの名無しさん:02/10/22 00:51
俺ならこう書いてみる。これじゃダメかな?

int judge_numeric( const char *str)
{
 double dummy;
 return sscanf(str,"%f",&dummy) == 1;
}

63 :62:02/10/22 00:53
あ 後ろに変な文字があってもダメ判定しないか…(ワラ

64 :62:02/10/22 01:07
ついでに "%lf" か
引数のデフォルトキャストが float -> double で
scanf はカンケイないよね
つか ヘルプみるのも面倒なくらいへたれ(ワラ

65 :62:02/10/22 01:10
よく思い出したら strtod があったじゃん
アホだ(激ワラ
スレ汚してスマソ

66 :名無しさん@XEmacs:02/10/22 01:19
void *malloc_or_die( size_t size ) {
void *p = malloc( size );
if ( !p ) exit( 1 );
return p;
}

67 :デフォルトの名無しさん:02/10/22 01:42
うーん、>>66みたいなハードボイルドなネームセンスが欲スィ。

68 :デフォルトの名無しさん:02/10/22 01:50
文字列比較のswitch文のようなことをしたいときの
スマートな方法をおしえてほしい

69 :デフォルトの名無しさん:02/10/22 02:00
>>67
perlしる

70 :デフォルトの名無しさん:02/10/22 02:01
ネタは1chでやってくれや。>>ALL

71 :デフォルトの名無しさん:02/10/22 02:10
>>68
int chekidesu( const char *str, char **anisama) {
 int i; for( i = 0; *anisama; ++i,++anisama ) {
 if( strcmp(str,*anisama) return i; }
 return -1; }
char *sisters[] = { "...", "...", "...", 0 };
cheki = checkidesu( "yotsuha", sisters);
switch( cheki ) { case 0: case 1: ... };

72 :デフォルトの名無しさん:02/10/22 02:13
チェキあげ!

73 :名無しさん@XEmacs:02/10/22 02:22
char *getf( FILE *fp ) {
size_t length = 0;
char *str;
while ( fgetc(fp) != EOF ) ++length;
str = (char *) malloc_or_die( length + 1 );
fseek( fp, 0L, SEEK_SET );
fread( (void *)str, 1, length, fp );
str[length] = '\0';
return str;
}


74 :デフォルトの名無しさん:02/10/22 02:23
チェキかよ(ワラ

75 :デフォルトの名無しさん:02/10/22 02:27
なぜ age る・・・

>>72
どうせなら渡すのはファイルポインタよりファイル名の方が
getf() 呼ばれる前にファイルポインタずれてたら破綻するし

76 :73:02/10/22 02:31
>>75
ナイスアイデアサンクス!
その方が便利だね
実は stdin とか渡されても機能しないしね

77 :デフォルトの名無しさん:02/10/22 02:49
>>69
それを言うならPHPしる!だろ。

78 :デフォルトの名無しさん:02/10/22 07:51
#include <stdio.h>
int main(){
int i,j;
return 0;
}


79 :デフォルトの名無しさん:02/10/22 08:52
void dead_or_alive(boolean exp){if(!exp) exit(1);}

80 :デフォルトの名無しさん:02/10/22 16:43
なぜ age る・・・

>>78
OK
>>79
boolean って何にょ

81 :80:02/10/22 18:35
ついか

>>79
名前 die_if() のが良くない? dead_or_alive() は正直長い
あとこの程度なら do {} while(0) で包んだ #define の方が良かろ

82 :デフォルトの名無しさん:02/10/22 18:37
>>81
てか assert()

83 :81:02/10/22 19:26
>>82
ああ、そうね
でも NDEBUG だと動かないし
エラーメッセージが余計な時もあるだろう
という事にしといて

84 :68:02/10/24 01:06
>>71
ありがとう!
でもシステープリンセスは良く分からないので
関数名は変えました


85 :デフォルトの名無しさん:02/10/27 10:18
めもめも

http://www.kmonos.net/wlog/23.php
型安全でコンパイル時評価な配列の長さ取得。

namespace detail
{
template<int N> struct array_size_t { char result[N]; };
template<class T,int N> array_size_t<N> array_size(T (&x)[N]);
}
#define lengthof(arr) (sizeof(detail::array_size(arr).result))

86 :デフォルトの名無しさん:02/10/28 14:14
age

87 :デフォルトの名無しさん:02/11/16 15:09
おまえらが作った便利な関数を公開しる!

88 :C++使い:02/11/16 15:15
いちお文字列を置き換えるreplaceなるfunctionを作ったが…

89 :デフォルトの名無しさん:02/11/16 16:20
>>88
その名前は STL のものとかぶるからよせ。
substitute とか、change_string とかにしろ (例はあまり妥当ではないが)。
いや、単に名前がかぶるだけなら別に構わないのだが、それが標準であるものと
別の機能を持っている場合は混乱する。

90 :デフォルトの名無しさん:02/11/16 19:20
web_page WebSearch(char* key_word)
{
  ...
  
  return result;
}

http://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm = WebSeach("doll");

91 :デフォルトの名無しさん:02/11/16 19:25
>>90
それはもういいよ・・・。

92 :C++使い:02/11/17 22:07
>>89
そう言われればわざわざ同じ名前にすること無いね。
サンクス

93 :デフォルトの名無しさん:02/11/21 22:59
std::string &operator<<(std::string &L, signed R) { char buf[ 11]; sprintf (buf, "%u" , R); return L += buf; }
std::string &operator<<(std::string &L, unsigned R) { char buf[ 12]; sprintf (buf, "%d" , R); return L += buf; }
std::string &operator<<(std::string &L, double R) { char buf[256]; _snprintf(buf, sizeof(buf), "%.03f", R); return L += buf; }

std::string &operator<<(std::string &L, signed char R) { return L += (signed )R; }
std::string &operator<<(std::string &L, unsigned char R) { return L += (unsigned)R; }
std::string &operator<<(std::string &L, signed short R) { return L += (signed )R; }
std::string &operator<<(std::string &L, unsigned short R) { return L += (unsigned)R; }
std::string &operator<<(std::string &L, signed long R) { return L += (signed )R; }
std::string &operator<<(std::string &L, unsigned long R) { return L += (unsigned)R; }
std::string &operator<<(std::string &L, float R) { return L += (float )R; }

std::string &operator<<(std::string &L, bool R) { return L += R? "true": "false"; }

std::string &operator<<(std::string &L, char R) { return L += R; }
std::string &operator<<(std::string &L, const char *R) { return L += R; }
std::string &operator<<(std::string &L, std::string &R) { return L += R; }

94 :デフォルトの名無しさん:02/11/29 20:08
あ 後ろに変な文字があってもダメ判定しないか…(ワラ

95 :デフォルトの名無しさん:02/11/29 20:10
伝じゃラスな関数を公開しる!

96 :デフォルトの名無しさん:02/11/29 21:34
これしかないじゃん

int getchar();int putchar(int);int main(){char k[]="A52A2245332A252B435B2222A2"
"B2A2A23A2C32A3B5B2222A52B43532A2352C23A52A2246D2A3533B35K2A4D22A3224A45D2C25B"
"2A32A5D2C25D4A26C4A1",*p=k;int i,c,b=1;while(*p){c=0;for(i=0;i<8;i++){if(*p==
'0'){if(!*++p)break;b=!b;}c=(c<<1)+b;if((*p)--=='A')*p='0';if(*p >= 'A')b=!b;}
if(c)putchar(c);}getchar();return 0;}

97 :デフォルトの名無しさん:02/11/30 23:17
良スレ上げ

98 :デフォルトの名無しさん:02/12/01 00:52
あげられ

24 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)