<?xml version='1.0' encoding='utf-8' ?>

<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
<channel>
  <title>Cの入り口ぃ</title>
  <link>http://asks.jp/community/languagec/</link>
  <description>Cの入り口ぃ - [ASKS? - 教えて君コミュニティー]</description>
  <lastBuildDate>Sun, 03 Jun 2007 15:50:25 GMT</lastBuildDate>
  <generator>LiveJournal / [ASKS? - 教えて君コミュニティー]</generator>
<item>
  <guid isPermaLink='true'>http://asks.jp/community/languagec/561.html</guid>
  <pubDate>Fri, 09 Feb 2007 18:19:00 GMT</pubDate>
  <title>文字列</title>
  <link>http://asks.jp/community/languagec/561.html</link>
  <description>C言語には文字列変数はありません。&lt;br /&gt;そのため、文字列は文字の配列として扱います。&lt;br /&gt;1. 文字の取り扱い&lt;br /&gt;文字の変数は char で宣言します。また、文字定数は &apos; &apos;でくくります。printf で出力するときは %c を使います。&lt;br /&gt;例:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;int main(void){&lt;br /&gt;  char x;&lt;br /&gt;  x=&apos;a&apos;;&lt;br /&gt;  printf(&quot;%c\n&quot;,x);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;2. 文字列&lt;br /&gt;一方文字配列に値を入れる際、最後に必ず &apos;\0&apos; という特別な文字を入れる必要があります。&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;int main(void){&lt;br /&gt;  char y[4]={&apos;a&apos;,&apos;b&apos;,&apos;c&apos;,&apos;\0&apos;};&lt;br /&gt;  printf(&quot;%c&quot;,a[0]);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;なお、この文字配列の初期化の方法ですが、上のように中括弧でくくるほうほうよりもっ&lt;wbr /&gt;と簡単な方法があります。&lt;br /&gt;上のプログラムと下のプログラムの意味はまったく同じになります。&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;int main(void){&lt;br /&gt;  char y[4]=&quot;abc&quot;;&lt;br /&gt;  printf(&quot;%c&quot;,a[0]);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;つまり、文字列を &quot;&quot; でくくると、その後に&apos;\0&apos;が自動的に付加されます。&lt;br /&gt;このようにデータの最後つけるデータの終わりを示す特別な値を番兵と呼びます。&lt;br /&gt;この番兵があると次のように文字数がわからなくてもすべてを表示することができます。&lt;wbr /&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;int main(void){&lt;br /&gt;  char y[4]=&quot;abc&quot;;&lt;br /&gt;  int i;&lt;br /&gt;  for(i=0;a[i]!=&apos;\0&apos;;i++){&lt;br /&gt;    printf(&quot;%c&quot;,y[i]);&lt;br /&gt;  }&lt;br /&gt;  printf(&quot;\n&quot;);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. さて、このabc を縦書きにして見ましょう。&lt;br /&gt;2. cba と逆順に表示してみましょう。&lt;br /&gt;(y の中身だけ書き換えてもちゃんと反映するように)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.asks.jp/community/clanguage/6257.html&quot;&gt;こちらの続きです&lt;/a&gt;</description>
  <comments>http://asks.jp/community/languagec/561.html</comments>
  <category>お題</category>
  <lj:mood>すぃーとどりーむさんより</lj:mood>
</item>
<item>
  <guid isPermaLink='true'>http://asks.jp/community/languagec/1352.html</guid>
  <pubDate>Tue, 13 Feb 2007 11:05:00 GMT</pubDate>
  <title>日本語処理</title>
  <link>http://asks.jp/community/languagec/1352.html</link>
  <description>日本語を処理するサンプルのプログラムを示します。&lt;br /&gt;&lt;pre&gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;locale.h&amp;gt;
#include &amp;lt;wchar.h&amp;gt;
int main(void){
  wchar_t c=L&apos;ア&apos;;
  wchar_t s[]=L&quot;あいうえお&quot;;
  setlocale(LC_CTYPE,&quot;Japanese_Japan.932&quot;);
  wprintf(L&quot;%ls %d %lc\n&quot;,s,wcslen(s),c);
  return 0;
}
&lt;/pre&gt;&lt;br /&gt;文法的に大きく変わってはいませんが、次のようになっています。&lt;br /&gt;・ char の代わりに wchar_t を使う。&lt;br /&gt;・ 文字定数、文字列定数の前に L をつける。&lt;br /&gt;・プログラムの開始時に setlocale をする(このプログラムは shift_jis を指定しているので、unicode の環境に移行する必要があるかもしれません)&lt;br /&gt;・表示するときは wprintf を使います。表示形式を示す文字列も L&quot;&quot; という形式で指定します。&lt;br /&gt;・ wprintf で表示する際、中身は printf と同等ですが、 wchar_t を文字として表示するときは %lc, wchar_t の配列を文字列として表示するときは %ls を使います。&lt;br /&gt;&lt;br /&gt;さて、次の問題を解きましょう。&lt;br /&gt;1. s の内容を逆順に表示する&lt;br /&gt;2. s のひらがなをカタカナに直して表示する</description>
  <comments>http://asks.jp/community/languagec/1352.html</comments>
  <lj:mood>日本語でおk</lj:mood>
</item>
<item>
  <guid isPermaLink='true'>http://asks.jp/community/languagec/2032.html</guid>
  <pubDate>Mon, 26 Mar 2007 16:02:00 GMT</pubDate>
  <title>第二部　ウィンドウプログラミング</title>
  <link>http://asks.jp/community/languagec/2032.html</link>
  <description>さて、そろそろコンソールともおさらばして、ウィンドウのプログラミングに入りましょ&lt;wbr /&gt;う。&lt;br /&gt;win32API に関するマニュアル本を入手するといいでしょう。&lt;br /&gt;私は土井滋貴、那須靖弘、上田悦子「Win32API完璧マスタ」CQ出版(2001)&lt;wbr /&gt;を使用しますが、別になんでもかまわないと思います。&lt;br /&gt;ただ、ググってもいろいろページがヒットしますので、買わなくてもいいかも。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;とりあえずサンプルプログラムを示します。&lt;br /&gt;&lt;h3&gt;rei1.h&lt;/h3&gt;&lt;pre&gt;#define ID_text 200
&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;rei1.c&lt;/h3&gt;&lt;pre&gt;#include &amp;lt;windows.h&amp;gt;
#include &quot;rei1.h&quot;
BOOL CALLBACK rei1(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM dammy1);
int WINAPI WinMain(HINSTANCE hinstCurrent, HINSTANCE dammy2, LPSTR dammy3, int dammy4){
  DialogBox(hinstCurrent, &quot;rei1&quot;, HWND_DESKTOP, (DLGPROC) rei1);
  return 0;
}
BOOL CALLBACK rei1(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM dammy1){
  char string[]=&quot;Hello World&quot;;
  switch(msg){
  case WM_INITDIALOG:
   SetDlgItemText(hwndDlg, ID_text, string);
    return TRUE;
  case WM_COMMAND:
    switch(wParam){
    case IDCANCEL: EndDialog(hwndDlg, FALSE);
      return TRUE;
    }
    break;
  }
  return FALSE;
}
&lt;/pre&gt;&lt;br /&gt;Windows のプログラミングではこのように単純に関数を登録するだけのWinMain関数と、実&lt;wbr /&gt;際にプログラムを定義する関数があります。&lt;br /&gt;また、実際のプログラムはこのようにswitch case 文で Windows から来たメッセージに対して、それぞれ対応する動きをひとつして、 return TRUE で終了するようになっています。&lt;br /&gt;理由はともかく、こういうものだということで覚えてください。&lt;br /&gt;&lt;br /&gt;次にリソースファイルというのが出てきます。&lt;br /&gt;&lt;h3&gt;rei1.rc&lt;/h3&gt;&lt;pre&gt;#ifndef WORKSHOP_INVOKED
#include &amp;lt;windows.h&amp;gt;
#endif
#include &quot;rei1.h&quot;

rei1 DIALOG DISCARDABLE 10, 10, 190,50
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION &quot;rei1&quot;
FONT 10,&quot;system&quot;
{
	LTEXT &quot;&quot;, ID_text , 15,30,100,10
}
&lt;/pre&gt;&lt;br /&gt;ファイルが三つも出てきて管理がめんどくさくなってきましたので、 Makefile で管理することにします。&lt;br /&gt;&lt;h3&gt;Makefile&lt;/h3&gt;&lt;pre&gt;TARGET = rei1
CC = bcc32
CFLAGS=-W
RESC = brc32
RES_INCS = -ic:\borland\bcc55\Include
LIBS = 

$(TARGET): $(TARGET).rc $(TARGET).exe 
	$(RESC) $(RES_INCS) $**
$(TARGET).exe: $(TARGET).obj 
	$(CC) $(CFLAGS) -e$@ $** $(LIBS)

$(TARGET).RES: $(TARGET).h
$(TARGET).obj: $(TARGET).h
&lt;/pre&gt;&lt;br /&gt;これらの４つのファイルをひとつのディレクトリに入れ、 make コマンドを打つと自動的に re1.exe が作られます。&lt;br /&gt;&lt;br /&gt;では問題です。&lt;br /&gt;1. ウィンドウにかかれる文字を「こんにちは」にしましょう。&lt;br /&gt;2. ウィンドウのタイトルバーを「例1」に変更しましょう。&lt;br /&gt;3. 最小化できるようにタイトルバーにボタンを追加してください。</description>
  <comments>http://asks.jp/community/languagec/2032.html</comments>
  <lj:mood>窓からこんにちは</lj:mood>
</item>
<item>
  <guid isPermaLink='true'>http://asks.jp/community/languagec/2084.html</guid>
  <pubDate>Sat, 31 Mar 2007 13:46:00 GMT</pubDate>
  <title>win 32　ﾘﾝｸ集１</title>
  <link>http://asks.jp/community/languagec/2084.html</link>
  <description>お世話になっております。&lt;br /&gt;&lt;br /&gt;すぃーとどりーむさんが教えてくださったご本をそのうち手に入れたいと思いますが、&lt;br /&gt;ググッてもいいということでありがたくまずは以下をざざっと読んでみることにします。&lt;wbr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Welcome to MASAPICO&apos;S Page [&lt;/strong&gt;Win32 のサンプル集]&lt;br /&gt;&lt;a href=&quot;http://nienie.com/~masapico/sample_index.html&quot;&gt;http://nienie.com/~masapico/sample_index.h&lt;wbr /&gt;tml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Win32 API入門&lt;/strong&gt;&lt;br /&gt;&lt;a href=&quot;http://wisdom.sakura.ne.jp/system/winapi/win32/index.html&quot;&gt;http://wisdom.sakura.ne.jp/system/winapi/w&lt;wbr /&gt;in32/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Win32 API 用語集&lt;br /&gt;&lt;/strong&gt;&lt;a href=&quot;http://suuri.ics.kagoshima-u.ac.jp/lectures/EasyWin/docs/refs/Win32API.html&quot;&gt;http://suuri.ics.kagoshima-u.ac.jp/lectu&lt;wbr /&gt;res/EasyWin/docs/refs/Win32API.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Win32 API 関数リスト&lt;br /&gt;&lt;/strong&gt;&lt;a href=&quot;http://yokohama.cool.ne.jp/chokuto/urawaza/api/&quot;&gt;http://yokohama.cool.ne.jp/chokuto/urawa&lt;wbr /&gt;za/api/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;「Win32API完璧マスタ」CQ出版(2001)&lt;br /&gt;&lt;/strong&gt;土井 滋貴/那須 靖弘/上田 悦子 共著&lt;br /&gt;B5変型判 288ページ&lt;br /&gt;CD-ROM付き&lt;br /&gt;&lt;font color=&quot;#000080&quot;&gt;定価2,730円(税込)&lt;/font&gt;&lt;br /&gt;&lt;a href=&quot;http://www.cqpub.co.jp/hanbai/books/36/36901.htm&quot;&gt;http://www.cqpub.co.jp/hanbai/books/36/3&lt;wbr /&gt;6901.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;フリー百科事典『ウィキペディア（Wikipedia）』&lt;br /&gt;&lt;a href=&quot;http://ja.wikipedia.org/wiki/Win32&quot;&gt;http://ja.wikipedia.org/wiki/Win32&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
  <comments>http://asks.jp/community/languagec/2084.html</comments>
  <category>勝手にリンク</category>
  <lj:mood>一年生になったら友達100人Ｃ言語</lj:mood>
</item>
<item>
  <guid isPermaLink='true'>http://asks.jp/community/languagec/1686.html</guid>
  <pubDate>Wed, 21 Feb 2007 11:51:00 GMT</pubDate>
  <link>http://asks.jp/community/languagec/1686.html</link>
  <description>お世話になっております。&lt;br /&gt;&lt;br /&gt;ｺﾝﾊﾟｲﾗに「何行目！何とかﾃﾞｽﾖーー！！」と阻まれ怒られ続け凹みもし、&lt;br /&gt;邪魔するな！とｺﾝﾊﾟｲﾗに逆切れしてhello.cなんて入力進めても、、ﾀﾞﾒ&lt;wbr /&gt;なものわﾀﾞﾒなのですが、、やぁっとｺﾝﾋﾟｭｰﾀｰが口を開いてくれるのは何十回&lt;wbr /&gt;ってｱﾌﾟﾛｰﾁの中の１回もしくわ、&lt;br /&gt;うれしくてﾓｳ１回やっちゃうぞ！と喜びを噛み締めております計２回ぐらいなんですね&lt;wbr /&gt;ー。。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ﾄﾞﾜﾝｺﾞという企業が求人募集しているそうで一応ﾘﾝｸしときます。&lt;br /&gt;&lt;a target=&quot;b_lank&quot; href=&quot;http://info.dwango.co.jp/2ch_kyujin/&quot;&gt;http://info.dwango.co.jp/2ch_kyujin/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;＞□プログラム開発の能力がある方。&lt;br /&gt;JAVA,PHP,C++,ActionScriptのどれかでがんばっていること。&lt;wbr /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;もしかしたらひょんなことからこのｺﾐｭを見つけたり&lt;a href=&quot;http://www.asks.jp/community/programmers/&quot;&gt;プログラミング入門&lt;/a&gt;ｺﾐｭにてｶﾞﾝｶﾞﾝ聞きまくりとんとんとん！と就職していっちゃうﾅｲｽ！なﾔﾝ&lt;wbr /&gt;ｸﾞがいるかもいないかもしれないませんですねー。&lt;br /&gt;&lt;br /&gt;一度聞いたかもしれませんが改めて”Ｃ＋＋”と”Ｃ”の関係・違いなどを教えていただ&lt;wbr /&gt;けますでしょうか。&lt;br /&gt;上記のどれかを習得してらっしゃったら順番やﾌｨｯﾄ感などもできましたらお教え下さ&lt;wbr /&gt;い。</description>
  <comments>http://asks.jp/community/languagec/1686.html</comments>
  <category>ﾄﾞの素人の日記</category>
  <lj:mood>わたしとＣ言語、ｺﾝﾊﾟｲﾗとｺﾝﾋﾟｭｰﾀｰ</lj:mood>
</item>
<item>
  <guid isPermaLink='true'>http://asks.jp/community/languagec/1057.html</guid>
  <pubDate>Sat, 10 Feb 2007 14:48:00 GMT</pubDate>
  <title>文字コード</title>
  <link>http://asks.jp/community/languagec/1057.html</link>
  <description>文字列の話をしていて、文字コードの話が出てきました。&lt;br /&gt;そこで、今度は文字コードを考えましょう。&lt;br /&gt;大昔の紙カードの文字コードを除き、通常の文字コードではある法則があります。&lt;br /&gt;それは、文字の順番順に文字コードが登録されているということです。&lt;br /&gt;つまり、 &apos;A&apos; の次は &apos;B&apos; が登録されているということです。&lt;br /&gt;&lt;br /&gt;また、C 言語の特性として、文字と数値はほとんど同じに考えられるということがあります。&lt;br /&gt;つまり &apos;A&apos; 自体がコンピュータ内部では一つの数（この場合、 10 進数で 65) として取り扱われます。&lt;br /&gt;つまり、&apos;A&apos; 自体も数として扱えます。&lt;br /&gt;次のプログラムは &apos;B&apos; を出力します。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;int main(void){&lt;br /&gt;  printf(&quot;%c\n&quot;,&apos;A&apos;+1);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;これは大文字でも小文字でも同じことです。&lt;br /&gt;従って、次の式が成り立ちます。&lt;br /&gt;&apos;B&apos;-&apos;A&apos;=&apos;b&apos;-&apos;a&apos;&lt;br /&gt;これは別に B だけに成り立つわけではないので大文字 X と小文字 x についても同様に成り立ちます。&lt;br /&gt;X について解くと次の式を得ます。&lt;br /&gt;X= x - &apos;a&apos;+&apos;A&apos;&lt;br /&gt;これは小文字から大文字を計算できるということです。&lt;br /&gt;&lt;br /&gt;また、特定の文字変数 c が英大文字かどうかは c&amp;gt;=&apos;A&apos; &amp;&amp; c&amp;lt;=&apos;Z&apos; で判定できます。&lt;br /&gt;&lt;br /&gt;なお、文字配列変数に対して printf で %s を指定すると、文字配列をすべて表示できます。&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;int main(void){&lt;br /&gt;  char h[]=&quot;Hello World!&quot;;&lt;br /&gt;  printf(&quot;%s\n&quot;,h);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;さて、次の文字列を指定通りに変換して表示してください。&lt;br /&gt;但し、文字列の内容を変更しても期待通りに変換できるようにして下さい。&lt;br /&gt;1. char s[]=&quot;ABC&quot; など大文字だけの文字列を小文字にして表示する&lt;br /&gt;2. char t[]=&quot;aBcDEf&quot; など大文字と小文字の混ざった文字列を全部大文字にして表示する&lt;br /&gt;3. char u[]=&quot;This is a pen.&quot; など英字以外も含まれる文字列に対して、英字はすべて大文字に変換して表示する。</description>
  <comments>http://asks.jp/community/languagec/1057.html</comments>
  <category>お題</category>
  <lj:mood>すぅいーとどりーむさんよりのおだーい</lj:mood>
</item>
<item>
  <guid isPermaLink='true'>http://asks.jp/community/languagec/892.html</guid>
  <pubDate>Fri, 09 Feb 2007 18:27:00 GMT</pubDate>
  <link>http://asks.jp/community/languagec/892.html</link>
  <description>ごぶさた致しております。 &lt;br /&gt;&lt;a href=&quot;http://www.asks.jp/community/clanguage/&quot;&gt;Ｃの入り口&lt;/a&gt;では大変お世話になりました。 &lt;br /&gt;&lt;br /&gt;第２章としてＣの入り口ぃを開設いたしました。。 &lt;br /&gt;今後ともどうぞ宜しくお願い致します。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;今後のﾘｸｴｽﾄとこのたびの一件について「ｺﾝﾆｬﾛｰ」を受付致します。&lt;br /&gt;ﾘｸｴｽﾄは大きな声ではっきりとおっしゃられると奥の方から&lt;br /&gt;もそもそと数名出てこられるはずです。&lt;br /&gt;お気軽にどうぞ。&lt;br /&gt;&lt;br /&gt;</description>
  <comments>http://asks.jp/community/languagec/892.html</comments>
  <category>ごあいさつ</category>
  <lj:mood>ごめんなさーい</lj:mood>
</item>
</channel>
</rss>
