探検
C言語をやりたいんですが
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2007/12/23(日) 02:35:09 まずなにやったらいいの?
100デフォルトの名無しさん
2008/01/28(月) 18:53:38 総括すると、みんなCが大好きってことだな
101厨房<丶`∀´> ◆Uol9ceBo4s
2008/01/28(月) 19:44:57 喧嘩はやめようぜ。
102デフォルトの名無しさん
2008/01/28(月) 22:06:01 ししょー
103デフォルトの名無しさん
2008/02/29(金) 21:04:47 このスレおわったのか?
104デフォルトの名無しさん
2008/04/07(月) 02:07:56 はじめて "hello world" が表示された時の感動を俺は忘れない
105104
2008/04/15(火) 22:31:50 ごめん忘れたみたい
106104
2008/04/17(木) 17:44:58 今少しだけ思い出した
107デフォルトの名無しさん
2008/06/17(火) 00:12:01 はじめての言語は
MSXのBASICと言うのは
俺のような30代・・・
Cといえばturbo C
これも・・
MSXのBASICと言うのは
俺のような30代・・・
Cといえばturbo C
これも・・
108デフォルトの名無しさん
2008/06/17(火) 07:33:03 日本語でおk
109デフォルトの名無しさん
2008/06/18(水) 09:11:43110デフォルトの名無しさん
2008/06/27(金) 02:09:07 ファミコン世代
ファミリーBASICも30代
ファミリーBASICも30代
111デフォルトの名無しさん
2008/06/28(土) 19:03:58 TurboCもいいけど一番お世話になったのはLSI-C試食版
112デフォルトの名無しさん
2008/07/06(日) 19:47:08 同じくだ。
PC98時代(DOS)からWindows98時代までお世話になったw
PC98時代(DOS)からWindows98時代までお世話になったw
113デフォルトの名無しさん
2008/08/20(水) 21:10:12 学校では98でturboCしたが
メモリに直に数値入れるイメージしかない
通信といえばBBSの時代・・・
メモリに直に数値入れるイメージしかない
通信といえばBBSの時代・・・
114デフォルトの名無しさん
2008/09/01(月) 03:35:35 ほしゅ
115デフォルトの名無しさん
2008/09/01(月) 04:34:09 XCやGCCで育ったのも30代。
無料でついてきたマクロアセンブラで遊んだのも30代。
無料でついてきたマクロアセンブラで遊んだのも30代。
116デフォルトの名無しさん
2008/09/01(月) 04:53:24 俺漏れも
マニュアル読み尽くしてreadとfreadは機能がだぶってるじゃんか
とかいうあたりからunixへ入っていった
あとkmyaccとか2005年あたりにさりげなく
バージョンアップしてんの知ってた?
マニュアル読み尽くしてreadとfreadは機能がだぶってるじゃんか
とかいうあたりからunixへ入っていった
あとkmyaccとか2005年あたりにさりげなく
バージョンアップしてんの知ってた?
117デフォルトの名無しさん
2008/09/01(月) 08:59:29 ヤック・デカルチャー?
118デフォルトの名無しさん
2008/09/02(火) 18:33:52 ↑
そのTV・劇場版マクロスを
視聴した小学生も今は30代
そのTV・劇場版マクロスを
視聴した小学生も今は30代
119デフォルトの名無しさん
2008/09/02(火) 19:10:00120デフォルトの名無しさん
2008/09/02(火) 19:22:31 Cスレにぴったりの言葉を思いついた
「Yacc de Culture.」
(訳: 構文解析やらないか)
「Yacc de Culture.」
(訳: 構文解析やらないか)
121デフォルトの名無しさん
2008/09/12(金) 22:35:23 試食版じゃないLSI-Cを使ってると込みたことある人はどんだけいるのだろう。
122デフォルトの名無しさん
2008/09/12(金) 22:43:07 はいよ。使ってるところを見たというより、使ってた。
尤も、製品買ったのにSmallモデルしか使った記憶が無い罠。
まぁ、試食版には無いライブラリのソースは見られたけど。
尤も、製品買ったのにSmallモデルしか使った記憶が無い罠。
まぁ、試食版には無いライブラリのソースは見られたけど。
123デフォルトの名無しさん
2008/11/28(金) 07:30:28 そだね。とりあえずvoltaileにでもなってもらおか
124デフォルトの名無しさん
2008/11/28(金) 19:12:18 BasicMagazineの投稿に憧れ
マシン語なら日高の本を買い
・
・
・
いまどきC言語はnet検索で終了?
マシン語なら日高の本を買い
・
・
・
いまどきC言語はnet検索で終了?
125デフォルトの名無しさん
2008/11/28(金) 20:51:57 ●●●
● ●
●
●
● ●
●●●
● ●
●
●
● ●
●●●
126デフォルトの名無しさん
2008/11/28(金) 23:58:52 誰かさ、オンラインコンパイラーってやつを作ってみてよ。
オンラインで YoutubeのSWFを音声やMPEGに変換するサイトがあるじゃん。
それと同じように Cソースを 実行形式に自動変換してくれるサイト作ってよ。
オンラインで YoutubeのSWFを音声やMPEGに変換するサイトがあるじゃん。
それと同じように Cソースを 実行形式に自動変換してくれるサイト作ってよ。
127デフォルトの名無しさん
2008/11/29(土) 23:35:42 C言語での「ウィンドウ作成」ってできるんですか?
できればサンプルソース書いていただきたいのですが。
ボーランドでソース書いてもエラー出て まいっちんぐマチコ先生でつ。
できればサンプルソース書いていただきたいのですが。
ボーランドでソース書いてもエラー出て まいっちんぐマチコ先生でつ。
128デフォルトの名無しさん
2008/11/30(日) 05:04:18 まいっちんぐマチコ
これ知っている人が40代以上である確率は非常に高いと
思われ。
これ知っている人が40代以上である確率は非常に高いと
思われ。
129デフォルトの名無しさん
2008/11/30(日) 10:44:48 >>124
その心に燃える闘魂が宿っていればnet検索で何も問題はない。
その心に燃える闘魂が宿っていればnet検索で何も問題はない。
130デフォルトの名無しさん
2008/12/01(月) 16:50:21131デフォルトの名無しさん
2008/12/02(火) 09:52:24 いやーん
132デフォルトの名無しさん
2008/12/05(金) 03:51:54133うゆ ◆e6.oHu1j.o
2008/12/05(金) 03:59:13 ほらよ!
#include <windows.h>
main(){
WNDCLASS wcex={0,DefWindowProc,0,0,0,0,0,0,0," "};
RegisterClass(&wcex);
ShowWindow(CreateWindow(" ",0,1,300,300,200,200,0,0,0,0),1);
Sleep(3000);
}
#include <windows.h>
main(){
WNDCLASS wcex={0,DefWindowProc,0,0,0,0,0,0,0," "};
RegisterClass(&wcex);
ShowWindow(CreateWindow(" ",0,1,300,300,200,200,0,0,0,0),1);
Sleep(3000);
}
134デフォルトの名無しさん
2008/12/05(金) 04:08:25135デフォルトの名無しさん
2008/12/05(金) 05:14:19 解決しても
また次の問題をかかえてくるに
8000ペリカ
また次の問題をかかえてくるに
8000ペリカ
136デフォルトの名無しさん
2008/12/06(土) 00:13:08 >>132
ペゾルドのProgramming WindowsなどのまともなWindowsプログラミングの入門書読め。
ペゾルドのProgramming WindowsなどのまともなWindowsプログラミングの入門書読め。
137デフォルトの名無しさん
2008/12/06(土) 05:50:47 こんにちわ 世界!
138デフォルトの名無しさん
2008/12/06(土) 10:18:13 さようなら 世界!
139デフォルトの名無しさん
2008/12/06(土) 10:24:13 スクールデイズ 最終話か!
140デフォルトの名無しさん
2008/12/06(土) 10:58:40 printf("Nice boat.\n");
141デフォルトの名無しさん
2008/12/09(火) 13:41:44 中に誰もいませんよ!
#ifndef OTL
#define OTL
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char *str;
ulong length;
} OTLSTRING;
#endif
#define TEST1
main()
{
OTLSTRING orz;
}
#endif
#define OTL
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char *str;
ulong length;
} OTLSTRING;
#endif
#define TEST1
main()
{
OTLSTRING orz;
}
#endif
143デフォルトの名無しさん
2008/12/15(月) 23:58:45 なにこのゆとりスレ・・・
144デフォルトの名無しさん
2008/12/18(木) 03:02:36 ゆっとりしていってね!
145デフォルトの名無しさん
2008/12/18(木) 21:05:26 BASIC→マシン語
Cのはいる余地なしなのが30代と思ったが・・そうでもないのか
Cのはいる余地なしなのが30代と思ったが・・そうでもないのか
146デフォルトの名無しさん
2008/12/19(金) 12:08:14 C使えなかったんですか?貧乏だったんですね。
147デフォルトの名無しさん
2008/12/19(金) 21:00:22 パソコンは8bitで過去の栄光のmkUSR以降だったんです。
ガッコで98FAでturboCを初めてつかったんです。
そのときの参考書はお約束の Hello world の表示からポインタの説明までだったんです。
インターネットが流行る前のBBSの時代だったんです。
ガッコで98FAでturboCを初めてつかったんです。
そのときの参考書はお約束の Hello world の表示からポインタの説明までだったんです。
インターネットが流行る前のBBSの時代だったんです。
148デフォルトの名無しさん
2008/12/20(土) 01:23:36 ひとついえるのは
汎用性のないプログラムはゴミ
汎用性のないプログラムはゴミ
149デフォルトの名無しさん
2008/12/20(土) 07:18:36 汎用性のある会社員でもゴミになる時代
150デフォルトの名無しさん
2008/12/21(日) 10:19:49 金もうかるシステムをつくる経営者にならんとね
151デフォルトの名無しさん
2008/12/25(木) 09:13:39 最近「○○言語やりたいんですが、何をすれば?」みたいなのが多い。
逆だろ?
「××したいんだけど、○○言語ではどうすればいい?」
と聞くべきだろ?
何で自分がする(したい)事を他人から指示されなきゃならんの?
目的があれば、手段(言語)なんてなんでもいいよな?
と思うMZ80B世代のおっさんでした。
逆だろ?
「××したいんだけど、○○言語ではどうすればいい?」
と聞くべきだろ?
何で自分がする(したい)事を他人から指示されなきゃならんの?
目的があれば、手段(言語)なんてなんでもいいよな?
と思うMZ80B世代のおっさんでした。
152デフォルトの名無しさん
2009/02/14(土) 17:21:06 素人か上級釣り士ってだけのこと
子供は保護されてっから無意識に自分を中心にして回ってると思いがちなんだよ
掲示板も自分のため、ホームページのじゃんじゃんカウンタ回る、最強、天才、うんこちんこ大好き
子供は保護されてっから無意識に自分を中心にして回ってると思いがちなんだよ
掲示板も自分のため、ホームページのじゃんじゃんカウンタ回る、最強、天才、うんこちんこ大好き
153デフォルトの名無しさん
2009/02/14(土) 17:31:15 そしてまんこも
154デフォルトの名無しさん
2009/02/14(土) 17:55:35 C言語ができることがトレンディだった時代も・・・あったと思う
二十年くらい前に
二十年くらい前に
>>1はどうしているんだろう?
for文 (1)
繰り返しにはfor文を使う。
for(初期化;条件;処理){
ループ処理
}
for (i=0;i<10:i=i+1){
処理
}
これが基本形だ。
for(i=0,j=5,k=20;l==5;i+=j);
このような書き方もできる
繰り返しにはfor文を使う。
for(初期化;条件;処理){
ループ処理
}
for (i=0;i<10:i=i+1){
処理
}
これが基本形だ。
for(i=0,j=5,k=20;l==5;i+=j);
このような書き方もできる
for文 (2)
繰り返し途中に抜ける場合、
continueとbreakの12つがある・
continueはforの頭にもどりbreakはループを抜ける。
for(c=0;c<20;c++){
printf("%d\r\n", c);
if (c == 10) {
c = 15;
continue;
}
if (c == 18) break;
}
繰り返し途中に抜ける場合、
continueとbreakの12つがある・
continueはforの頭にもどりbreakはループを抜ける。
for(c=0;c<20;c++){
printf("%d\r\n", c);
if (c == 10) {
c = 15;
continue;
}
if (c == 18) break;
}
for文 (3)
無限ループはwhile厨とfor厨、goto厨がいる。
私はわかりやすさの面からforを推奨する
for(;;) {
無限ループ
}
while(0==0) {
無限ループ
}
LOOPS:
無限ループ
goto LOOPS;
無限ループはwhile厨とfor厨、goto厨がいる。
私はわかりやすさの面からforを推奨する
for(;;) {
無限ループ
}
while(0==0) {
無限ループ
}
LOOPS:
無限ループ
goto LOOPS;
文字列処理(1/3)
Cのもじれつはナル文字 (N88BASICでいえばCHR$(0))
で終わるbyte型の配列だ。
"sex"はs,e,x,\0の4バイトになる。
文字列処理はsprintf関数を使う。
printfの出先を文字列のアドレスにしただけ。
char nakano_minako[666];
char *ppp;
ppp = &0[nakano_minako];
sprintf(nakano_minako, "sex is sex");
puts(ppp);
Cのもじれつはナル文字 (N88BASICでいえばCHR$(0))
で終わるbyte型の配列だ。
"sex"はs,e,x,\0の4バイトになる。
文字列処理はsprintf関数を使う。
printfの出先を文字列のアドレスにしただけ。
char nakano_minako[666];
char *ppp;
ppp = &0[nakano_minako];
sprintf(nakano_minako, "sex is sex");
puts(ppp);
文字列処理(2/3)
数値変換は
atoi,atof,atolを使うN88BAICのVAL関数とおなじ。
char timer_sex[] = "05:10:12";
int hh,mm,ss;
hh = atoi(&0[timer_sex]);
mm = atoi(&3[timer_sex]);
ss = atoi(&6[timer_sex]);
printf("%d - %d - %d \b\r\n\t", hh,mm,ss);
数値変換は
atoi,atof,atolを使うN88BAICのVAL関数とおなじ。
char timer_sex[] = "05:10:12";
int hh,mm,ss;
hh = atoi(&0[timer_sex]);
mm = atoi(&3[timer_sex]);
ss = atoi(&6[timer_sex]);
printf("%d - %d - %d \b\r\n\t", hh,mm,ss);
文字列処理(3/3)
文字列は配列だから、簡単に暗号化できる
char sex[] = "sex for your 072";
while (*sex++) {
*sex += 22;
}
文字列は配列だから、簡単に暗号化できる
char sex[] = "sex for your 072";
while (*sex++) {
*sex += 22;
}
関数ポインタ(1/3)
C言語は関数ポインタを使って処理を読みやすくできる
typedef int (*type_is_sex)(int sex, int o72);
type_is_sex sex[3];
sex[0] = printf;
sex[1] = sprintf;
sex[2] = fprintf;
C言語は関数ポインタを使って処理を読みやすくできる
typedef int (*type_is_sex)(int sex, int o72);
type_is_sex sex[3];
sex[0] = printf;
sex[1] = sprintf;
sex[2] = fprintf;
staticの重要性(1/1)
C言語はstaticとexternという重要なキワードが存在する
グロバル変数にstatic int g_sex;
としあ場合、ほかのファイルからは見えなくなる
関数ないで
int f(void *d){
static s_sm;
...
}
とした場合、関数を抜けても値を保持するようになる。
externはほかのファイルに変数がありますよを意味する。
-------sex1.c-------------
int g_sex;
--------------------------
-------sex2.c-------------
extern int g_sex;
printf("%d",g_sex);
-------------------------
externはあくまで外部にあることを意味するので、
多重適宜してはいけない
C言語はstaticとexternという重要なキワードが存在する
グロバル変数にstatic int g_sex;
としあ場合、ほかのファイルからは見えなくなる
関数ないで
int f(void *d){
static s_sm;
...
}
とした場合、関数を抜けても値を保持するようになる。
externはほかのファイルに変数がありますよを意味する。
-------sex1.c-------------
int g_sex;
--------------------------
-------sex2.c-------------
extern int g_sex;
printf("%d",g_sex);
-------------------------
externはあくまで外部にあることを意味するので、
多重適宜してはいけない
プリプロセッサ (1/5)
#のある命令がいくつかある。
#include
#define
#if
#else
#endif
#pragma
これらはプリプロセッサといい、コンパイル前に行われる。
#includeは指定ファイルに置換される
#defineは単語置き換えを行う。
#if,else,endifは条件によってこんぱいるを帰る
#pragmaは重要だ。
#のある命令がいくつかある。
#include
#define
#if
#else
#endif
#pragma
これらはプリプロセッサといい、コンパイル前に行われる。
#includeは指定ファイルに置換される
#defineは単語置き換えを行う。
#if,else,endifは条件によってこんぱいるを帰る
#pragmaは重要だ。
プリプロセッサ (2/5)
#pragmaは重要だ。
#pragma onceとすることで多重インクルードを防ぐ。
------------monko.h------------
typedef int sex_i;
-------------------------------
もし、このmonko.hを複数のファイルが読んだら、
typedef多重のエラーになる。
ここで
------------monko.h------------
#pragma once
typedef int sex_i;
-------------------------------
とすれば、1階しか呼ばれない。
#pragmaは重要だ。
#pragma onceとすることで多重インクルードを防ぐ。
------------monko.h------------
typedef int sex_i;
-------------------------------
もし、このmonko.hを複数のファイルが読んだら、
typedef多重のエラーになる。
ここで
------------monko.h------------
#pragma once
typedef int sex_i;
-------------------------------
とすれば、1階しか呼ばれない。
プリプロセッサ (3/5)
#pragmaは重要だ。
#pragma packを使うことで構造体のあラインを調整できる。
#pragma pack(1)とすれば
以降の構造体が1バイトであラインされる(パデングなし)
#pragma pack(4)としたばあい、少々複雑だ。
typedef struct {
int x;
char c1;
char c2;
} SEXOS;
printf(%d", sizeof SEXOS);
何バイトだろうか?
12バイトにはならず8バイトになる。
#pragmaは重要だ。
#pragma packを使うことで構造体のあラインを調整できる。
#pragma pack(1)とすれば
以降の構造体が1バイトであラインされる(パデングなし)
#pragma pack(4)としたばあい、少々複雑だ。
typedef struct {
int x;
char c1;
char c2;
} SEXOS;
printf(%d", sizeof SEXOS);
何バイトだろうか?
12バイトにはならず8バイトになる。
167 ◆nullpop./c
2009/05/05(火) 12:02:32 プリプロセッサ (4/5)
プリプロセッサによってコメントをネストできる
#ifdef SEC
#ifdef SEV
/* */
#else
#endif
#endif
プリプロセッサによってコメントをネストできる
#ifdef SEC
#ifdef SEV
/* */
#else
#endif
#endif
プリプロセッサ (5/5)
##演算子
#define pasta(front,end) front ## end
pasta(name,1)でname,1という文字記号が作られる
##演算子
#define pasta(front,end) front ## end
pasta(name,1)でname,1という文字記号が作られる
ポインタ渡し?参照渡し?(1/2)
Cの関数呼出はすべて値私だ。
引数はコピーを受け取り、元の値には影響しない
#define function int
function fera(int longchinko){
longchinko = 17;
}
function main(){
short hokei=4;
fera(hokei);
printf("%d",hokei);
}
アドレスを渡すことで。引数の指す値を変更でくいる
#define function int
function fera(int *longchinko){
*longchinko = 17;
}
function main(){
short hokei=4;
fera(&hokei);
printf("%d",hokei);
}
Cには参照渡しは無い。
だから前述のポインタを使った参照渡しもどきしかできぬ。
Cの関数呼出はすべて値私だ。
引数はコピーを受け取り、元の値には影響しない
#define function int
function fera(int longchinko){
longchinko = 17;
}
function main(){
short hokei=4;
fera(hokei);
printf("%d",hokei);
}
アドレスを渡すことで。引数の指す値を変更でくいる
#define function int
function fera(int *longchinko){
*longchinko = 17;
}
function main(){
short hokei=4;
fera(&hokei);
printf("%d",hokei);
}
Cには参照渡しは無い。
だから前述のポインタを使った参照渡しもどきしかできぬ。
ポインタ渡し?参照渡し?(2/2)
引数でポインタそのものを変更するには
ポインタのポインタを使う
void mallocpp(char *pp){
*pp = malloc(INT_MAX);
}
main(){
char *po;
mallocpp(&po);
stlcpy(po, "sex and them!");
free(po);po = 0;
}
引数でポインタそのものを変更するには
ポインタのポインタを使う
void mallocpp(char *pp){
*pp = malloc(INT_MAX);
}
main(){
char *po;
mallocpp(&po);
stlcpy(po, "sex and them!");
free(po);po = 0;
}
コマンドライン引数(1/1)
ffmpegのようなソフトウェアはコマンドライン引数を受け付けておる
ffmpeg -i "千と千尋の神隠し.vob" -map 0.5:0.2 -vcodec libxvid -qscale 4 -acodec libmp3lame -ab 192k -ac 2 sex.avi
main関数は2つの引数をとることができ、
次のように定義すればコマンドライン引数を取得できる。
main(int chokin, char **cap)
{
while(chokin--) puts(cap[chokin]);
}
ffmpegのようなソフトウェアはコマンドライン引数を受け付けておる
ffmpeg -i "千と千尋の神隠し.vob" -map 0.5:0.2 -vcodec libxvid -qscale 4 -acodec libmp3lame -ab 192k -ac 2 sex.avi
main関数は2つの引数をとることができ、
次のように定義すればコマンドライン引数を取得できる。
main(int chokin, char **cap)
{
while(chokin--) puts(cap[chokin]);
}
FIFO、FILO(1/2)
FIFO,FILOはデータ構造。
First In Fast Out、割き入れ先出し
First In Last Out、先入れ後出し
のことだ。
typedef struct {
void (*pfin)(int);
int (*pfout)(void);
} CHINPO_IO;
//FIFO function
int fifobuf[100];
int fifoptr = fifobuf;
void fifoin(int i){
*fifoptr++;
}
int fifoout(void){
return *fifoptr--;
}
main(){
CHINPO_IO ci[2];
ci[0].pfin = fifoin;
ci[1].pfout = fifoout;
ci[0].pfin(1);ci[0].pfin(10);ci[0].pfin(100);
printf("%d %d %d\n", ci[0].pfout(), ci[0].pfout(), ci[0].pfout());
}
FIFO,FILOはデータ構造。
First In Fast Out、割き入れ先出し
First In Last Out、先入れ後出し
のことだ。
typedef struct {
void (*pfin)(int);
int (*pfout)(void);
} CHINPO_IO;
//FIFO function
int fifobuf[100];
int fifoptr = fifobuf;
void fifoin(int i){
*fifoptr++;
}
int fifoout(void){
return *fifoptr--;
}
main(){
CHINPO_IO ci[2];
ci[0].pfin = fifoin;
ci[1].pfout = fifoout;
ci[0].pfin(1);ci[0].pfin(10);ci[0].pfin(100);
printf("%d %d %d\n", ci[0].pfout(), ci[0].pfout(), ci[0].pfout());
}
173デフォルトの名無しさん
2009/05/07(木) 14:52:04 ありがとう
174デフォルトの名無しさん
2009/05/07(木) 18:42:21 文字列検索(1/4)
文字列検索にはstrstr関数を使う
char tx[] = "sex if";
if (strstr(sex, " i")){
みつかった
}else{
ない
}
Boyer-Mooer法については後述する
文字列検索にはstrstr関数を使う
char tx[] = "sex if";
if (strstr(sex, " i")){
みつかった
}else{
ない
}
Boyer-Mooer法については後述する
176 ◆nullpop./c
2009/05/07(木) 23:33:34 文字列検索(2/4)
/*奥村晴彦先生のを最適化*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
int sweets(unsigned char *text, unsigned char *pattern){
int i, j, k, len;
static int skip[UCHAR_MAX + 1];
unsigned char c, tail;
if ((len = strlen(pattern)) == 0) return -1;
tail = pattern[len-1];
if (len == 1) {
if ((i = (int)strchr(text, tail)) != 0) return i-(int)text;
} else {
memset(skip, len, UCHAR_MAX+1);
for (i = 0; i < len - 1; i++)
skip[pattern[i]] = len - 1 - i;
while ((c = text[i]) != 0) {
if (c == tail) {
j = len - 1; k = i;
while (pattern[--j] == text[--k])
if (j == 0) return k;
}
i += skip[c];
}
}
return -1;
}
/*奥村晴彦先生のを最適化*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
int sweets(unsigned char *text, unsigned char *pattern){
int i, j, k, len;
static int skip[UCHAR_MAX + 1];
unsigned char c, tail;
if ((len = strlen(pattern)) == 0) return -1;
tail = pattern[len-1];
if (len == 1) {
if ((i = (int)strchr(text, tail)) != 0) return i-(int)text;
} else {
memset(skip, len, UCHAR_MAX+1);
for (i = 0; i < len - 1; i++)
skip[pattern[i]] = len - 1 - i;
while ((c = text[i]) != 0) {
if (c == tail) {
j = len - 1; k = i;
while (pattern[--j] == text[--k])
if (j == 0) return k;
}
i += skip[c];
}
}
return -1;
}
177デフォルトの名無しさん
2009/05/08(金) 00:38:07 あーセックスしてー
178デフォルトの名無しさん
2009/05/08(金) 04:48:57 ーてしスクッセーあ
make(1/3)
たくさんソースファイル尾つくって、毎回それを全部コンパイルするのは無駄だ。
変更したソースだけをコンパイルすれば効率がいい
dmc a.c b.c c.c
この場合a.c b.c c.cがコンパイルされa.obj,b.obj,c.objが作られる。
-------MAKEFILE---------
SEX : a.c b.c c.c
(tab)dmc a.c b.c c.c
---------------------------
MAKEFILEというファイル名で
(tab)はTAB1こ。
これをmakeすると…
たくさんソースファイル尾つくって、毎回それを全部コンパイルするのは無駄だ。
変更したソースだけをコンパイルすれば効率がいい
dmc a.c b.c c.c
この場合a.c b.c c.cがコンパイルされa.obj,b.obj,c.objが作られる。
-------MAKEFILE---------
SEX : a.c b.c c.c
(tab)dmc a.c b.c c.c
---------------------------
MAKEFILEというファイル名で
(tab)はTAB1こ。
これをmakeすると…
>>177-178
void rev(char *x,char*m, short s)
{
long bin=0;
long sm=strlen(x);
m[sm]=0;
for(;bin<sm;bin+=2){
m[bin]=x[sm-bin-2];
m[bin+1]=x[sm-bin-1];
}
}
main(){
char sex[] = "あーセックスしてー";
static char manko[64];
rev(sex,manko, 2);
puts(manko);
}
void rev(char *x,char*m, short s)
{
long bin=0;
long sm=strlen(x);
m[sm]=0;
for(;bin<sm;bin+=2){
m[bin]=x[sm-bin-2];
m[bin+1]=x[sm-bin-1];
}
}
main(){
char sex[] = "あーセックスしてー";
static char manko[64];
rev(sex,manko, 2);
puts(manko);
}
181 ◆nullpop./c
2009/05/10(日) 00:46:00 /*
ライブラリ関数[1]
ファイル関係は以下のようにする
*/
#include <stdio.h>
typedef struct {
FILE *sex;
char sex2p[801];
FILE *(*open)(const char *n,const char*m);
int (*close)(FILE*);
char *(*gets)(char*,int n,FILE*);
} SEX_IO_VER;
SEX_IO_VER sit = {NULL,"sex",fopen,fclose,fgets};
main(int argc, char **argv)
{
static int line;
sit.sex = sit.open(argv[1], "r");
while (sit.gets(sit.sex2p,800,sit.sex)) printf("line%4d -- %s",line++,sit.sex2p);
sit.close(sit.sex);
}
ライブラリ関数[1]
ファイル関係は以下のようにする
*/
#include <stdio.h>
typedef struct {
FILE *sex;
char sex2p[801];
FILE *(*open)(const char *n,const char*m);
int (*close)(FILE*);
char *(*gets)(char*,int n,FILE*);
} SEX_IO_VER;
SEX_IO_VER sit = {NULL,"sex",fopen,fclose,fgets};
main(int argc, char **argv)
{
static int line;
sit.sex = sit.open(argv[1], "r");
while (sit.gets(sit.sex2p,800,sit.sex)) printf("line%4d -- %s",line++,sit.sex2p);
sit.close(sit.sex);
}
182デフォルトの名無しさん
2009/05/10(日) 17:20:57 C言語は実際にみてみればいいですねwこの前sakuyawwwっていうやつと知恵袋で書き込みしあったので見てみてください。
メモリには1バイト(8ビット)づつ番地が割り振られている。
1番地=1バイト=8ビット=256通りの情報
100番地に154を置くということは、100番地のメモリを10011010にするということ。
このことをある言葉で書いてみてください。
ある言葉はCですねw
Cで書いてみると
size of char = 1 バイト
size of short = 2 バイト
size of int = 4 バイト
size of unsigned int = 4 バイト
size of float = 4 バイト
size of double = 8 バイト
size of long double = 12 バイト
size of size_t = 4 バイト
これでおkですw
メモリには1バイト(8ビット)づつ番地が割り振られている。
1番地=1バイト=8ビット=256通りの情報
100番地に154を置くということは、100番地のメモリを10011010にするということ。
このことをある言葉で書いてみてください。
ある言葉はCですねw
Cで書いてみると
size of char = 1 バイト
size of short = 2 バイト
size of int = 4 バイト
size of unsigned int = 4 バイト
size of float = 4 バイト
size of double = 8 バイト
size of long double = 12 バイト
size of size_t = 4 バイト
これでおkですw
183デフォルトの名無しさん
2009/05/10(日) 17:22:31ハッキングとクラッキングの違いについて、ハッカーは絶対に自分からハッキングしません。クラッカーどもはしますがね!
ハッカーは日本に何人いるか?については、具体的には分かりませんが、大体数百人ぐらいですね・・・自分がしっている人数でも、50人ぐらいしか知りません。
001b7 f2 0f 2c d3 cvttsd2si edx, xmm3はなんですか?について、自分が今まででそういうソフトは知りません。もしかしたら全然関係ないものかもしれないし、もしかしたら、本当に関係があるかもしれません。
ハッキングは防ぐことができますか?について、ここではハッキングではないので、後からは「クラッキング」と称します。
クラッカーはまあよほど物好きでなかったら、一般の人のPCやセキリュティに進入しません。まあ、一応クラッキングされたとして、
一応どんなPCにも独特のセキリュティが入っています。しかし、どんなセキリュティも30分ほどしか持たないといわれています。
なので、セキリュティへの進入を感知すると、しっかりしたPCだと警告がでるので、すぐにわかります。すると自動的にシャットダウンするなど色々な動作でクラッキングを防ぐ行動をします。
ハッキングのやり方は
自分のPC・セキリュティへの進入を感知→相手のプロダクトID(プロダクトキーでも可)→相手のセキリュティの突破・破壊(別に破壊しなくてもいいですが、したい場合はしちゃってください!)→後は自分の好きなようにする。
一応クラッキングについても教えますね。 まあ、専門ではないので間違っている場合があります。
相手のプロダクトID(IPアドレスがあればもっと簡単になります。)→相手のセキリュティの突破(破壊は絶対にしないでください。すぐにばれます。)→後は自分の好きなようにする。
まあ、すんごく、超簡単に言ってみるとこんな感じですね。
PCにアクセスとは何?については
多少間違っていますね。アクセスはハッキング(クラッキング)半分合っていて半分間違っています。自分のPCから相手のPCへのアクセスは相手も同意しているのが絶対です。それ以前にばれています。
あと、この回答は質問に答えただけなので、ベストアンサーにはしなくてもいいです。
184 ◆nullpop./c
2009/05/11(月) 21:49:51 >>182-183
ネタなのかマジなのかわからんが。。。。。
int,unsigned intはコンパイラ依存(2byte,4byteどちらか)
001b7 f2 0f 2c d3 cvttsd2si edx, xmm3
左が機械語、右が対応するアセンブリ言語
ネタなのかマジなのかわからんが。。。。。
int,unsigned intはコンパイラ依存(2byte,4byteどちらか)
001b7 f2 0f 2c d3 cvttsd2si edx, xmm3
左が機械語、右が対応するアセンブリ言語
185デフォルトの名無しさん
2009/05/13(水) 13:41:04186 ◆nullpop./c
2009/05/23(土) 09:29:12 演算子(1/5)
Cは演算子がおっぱいある
優先順位と結合規則について説明しよう
優先順位が高いものから演算されます
s+e*xのときにe*xをしてそれにsを足すといったようになる
優先順位が同じものが複数有る場合、結合規則が適用される
a+u+m-s+h
+-は結合規則が左から右になっているから
((a+u)+m)... というように演算される
Cは演算子がおっぱいある
優先順位と結合規則について説明しよう
優先順位が高いものから演算されます
s+e*xのときにe*xをしてそれにsを足すといったようになる
優先順位が同じものが複数有る場合、結合規則が適用される
a+u+m-s+h
+-は結合規則が左から右になっているから
((a+u)+m)... というように演算される
187 ◆nullpop./c
2009/05/23(土) 09:31:52 演算子(2/5)
配列の[]は注意が必要だ
sex[nakadasi]
これは
*(sex+nakadasi)
に変換される
だからa[5]と5[a]は同等だ
配列の[]は注意が必要だ
sex[nakadasi]
これは
*(sex+nakadasi)
に変換される
だからa[5]と5[a]は同等だ
188 ◆nullpop./c
2009/05/23(土) 09:34:06 演算子(3/5)
sizeof演算子は2つの使い方がある
main(){
short sex;
printf("%d"
"-----"
"%d"
,
sizeof(long),
sizeof sex);
}
sizeof演算子は2つの使い方がある
main(){
short sex;
printf("%d"
"-----"
"%d"
,
sizeof(long),
sizeof sex);
}
189 ◆nullpop./c
2009/06/06(土) 14:40:30 質問ある???
190デフォルトの名無しさん
2009/06/06(土) 16:41:34 >>187
うぉ、すげっ。
うぉ、すげっ。
191デフォルトの名無しさん
2009/06/09(火) 01:05:57 何かボタンを押したら・・・みないたのをやりたいんだけど
scanf()だとEnter押さなきゃ入ってくれないじゃない?
どうすればEnter以外のボタンでもキー入力を取得できるの?
scanf()だとEnter押さなきゃ入ってくれないじゃない?
どうすればEnter以外のボタンでもキー入力を取得できるの?
192デフォルトの名無しさん
2009/06/09(火) 01:16:26 標準のCライブラリでは無理。
処理系依存では、kbhit とかあるけど、最近のウィンドウズでも使えるんだっけ?
処理系依存では、kbhit とかあるけど、最近のウィンドウズでも使えるんだっけ?
193デフォルトの名無しさん
2009/06/10(水) 04:21:51 VCだと_kbhitが一応用意されてるな
使った事ないけど
使った事ないけど
194ぅゅ ◆e6.oHu1j.o
2009/09/10(木) 09:21:42 ほらよ!!!
#include <windows.h>
#include <conio.h>
#include <stdio.h>
void main(){
printf("Z か A ");
getch();
if( GetKeyState( 0x5A ) & 0x80 ){MessageBox( 0, "test" , "ぜっとー。。" , 0);}
if( GetKeyState( 0x41 ) & 0x80 ){MessageBox( 0, "test" , "えーぼたんー" , 0);}
}
#include <windows.h>
#include <conio.h>
#include <stdio.h>
void main(){
printf("Z か A ");
getch();
if( GetKeyState( 0x5A ) & 0x80 ){MessageBox( 0, "test" , "ぜっとー。。" , 0);}
if( GetKeyState( 0x41 ) & 0x80 ){MessageBox( 0, "test" , "えーぼたんー" , 0);}
}
195 ◆nullpop./c
2009/09/10(木) 19:13:43196デフォルトの名無しさん
2009/09/11(金) 03:33:51 e6.oHu1j.o でググると、しょうもないもんばっかり出てくるよ
197デフォルトの名無しさん
2009/09/11(金) 09:04:19 トリ付きの98%はゴミ
198 ◆nullpop./c
2009/09/13(日) 18:29:20 >>194修正
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm")
static char messagetable[][100] = {"エラーです", "ぜっとー。。", "えーぼたんー", };
void PrintMessage(int i){
HWND hwnd;
int table_id = 0;
hwnd = GetForegroundWindow();
if( GetKeyState( 'Z' ) & 0x80 ) table_id = 1;
if( GetKeyState( 'A' ) & 0x80 ) table_id = 2;
if(table_id !=0) {
MessageBox( hwnd, "test" , messagetable[table_id] , MB_ABORTRETRYIGNORE);
} else {
MCI_OPEN_PARMS mop;
mop.lpstrDeviceType = "cdaudio";
mciSendCommand((DWORD_PTR)NULL, MCI_OPEN, MCI_OPEN_TYPE, (DWORD_PTR)&mop);
mciSendCommand(mop.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, (DWORD_PTR)NULL);
}
}
int main(void){
int i;
printf("Z か A ");
i = getch();
PrintMessage(i);
return EXIT_SUCCESS;
}
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm")
static char messagetable[][100] = {"エラーです", "ぜっとー。。", "えーぼたんー", };
void PrintMessage(int i){
HWND hwnd;
int table_id = 0;
hwnd = GetForegroundWindow();
if( GetKeyState( 'Z' ) & 0x80 ) table_id = 1;
if( GetKeyState( 'A' ) & 0x80 ) table_id = 2;
if(table_id !=0) {
MessageBox( hwnd, "test" , messagetable[table_id] , MB_ABORTRETRYIGNORE);
} else {
MCI_OPEN_PARMS mop;
mop.lpstrDeviceType = "cdaudio";
mciSendCommand((DWORD_PTR)NULL, MCI_OPEN, MCI_OPEN_TYPE, (DWORD_PTR)&mop);
mciSendCommand(mop.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, (DWORD_PTR)NULL);
}
}
int main(void){
int i;
printf("Z か A ");
i = getch();
PrintMessage(i);
return EXIT_SUCCESS;
}
199デフォルトの名無しさん
2009/09/14(月) 19:59:25 適切なスレがあったら是非誘導お願いします。
C言語用の、データ構造やアルゴリズムのライブラリってありませんか?
C++ならばSTLやBoostがありますが、Cのためのそれらのようなものを探しています。
できればそれなりにユーザーもいて開発も続いているものが...
C言語用の、データ構造やアルゴリズムのライブラリってありませんか?
C++ならばSTLやBoostがありますが、Cのためのそれらのようなものを探しています。
できればそれなりにユーザーもいて開発も続いているものが...
200 ◆nullpop./c
2009/09/14(月) 20:35:09■ このスレッドは過去ログ倉庫に格納されています
ニュース
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 中国軍機のレーダー照射1週間 駆け引き続く 中国、米のレッドライン模索 日本、米以外の同志国とも連携探る 米は対立から距離置く★2 [ぐれ★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 橋下徹氏「総理なら岡田さんに何を聴かれても耐えてほしかった」 高市首相の台湾有事めぐる答弁に# [jinjin★]
- 【静岡】伊東市長選、前市議の杉本氏初当選 学歴詐称疑惑の田久保氏は及ばず 市長選3700万円、市議選6300万円の計1億円費やされる [ぐれ★]
- 今年の大晦日も、孤独のグルメスペシャルだ。
- 上野動物園の双子パンダ、来月中国に返還へ。50年ぶりに国内でパンダ不在 [545512288]
- 裁判官 vs 投資家
- 夢って無気力になるの 何でなんだろ?
- 悪夢しか見ないわ
- 🏡すこふさん、とうだ…w🏡
