• ベストアンサー

void や str の読み方

最近、C言語を独学で勉強しはじめました。 インターネットと参考書などで勉強しています。 質問というのは様々な読み方です。 while や if などは読めるのですがvoid や stdio.h や str とか実際、お仕事をされている方はなんと読んでいるのでしょうか? またそういったことを調べられるところはありますでしょうか? 本当にバカげた質問かもしれませんが、生のお声をお伺いしたく、質問いたしました。 お時間のあるときで結構ですので、教えてください。

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

  • ベストアンサー
  • stosh666
  • ベストアンサー率40% (17/42)
回答No.1

職場では、 void = ボイド stdio.h = エスティーディーアイオー ドットエイチ str = ストラ(e.g. strcat = ストラキャット) って読んでいます。 この辺はバラツキがない部類でしょう。 charがキャラだったりチャラだったりキャーだったりチャーだったりバラバラなのですが。

参考URL:
http://www.cjn.or.jp/docs/dic/unix-term-dic.html
hazzy_funky
質問者

お礼

ご回答本当にありがとうございました。 参考URLは大変参考になりました。 ありがとうございました。

その他の回答 (3)

noname#25358
noname#25358
回答No.4

 プロの開発者やってます。  この質問はバカげたものではなく、実を言うと非常に重要です。  なぜなら、このへんの読み方の違いから打ち合わせで余計に時間を食ってしまい、それでその日の仕事時間が伸びてしまうということが実際に何度かあるからです。  実際のところ、これは「いやもー、いい加減にかんべんして!」と言いたくなる問題なのです(^_^;  開発者は、読み方が曖昧な単語の場合、その都度「目の前にいる現在のパートナーはどう発音するか」を、必要になるたびに一生涯確認しつづけなければいけません。  この行為は、はっきり言うと、みんなが「馬鹿げた問題」と認識しているだけに確認する方もされる方も苦痛なんです。  しかし、ある程度頭のいい開発者は、この問題を「絶対に口に出して発音しない」という方法によって解決しています。  音では伝わりづらい単語の混じった説明をする場合、「じゃあ、口で説明すると面倒だからメールするよ」などと言って、意味の通りづらい単語を発声しなければならない状況を回避しているわけです。  俺としても、hazzy_funky さんには、無理に言葉で発声するようなことはせず、文字でコミュニケーションするように心がけることをオススメします(^_^;

hazzy_funky
質問者

お礼

ご回答ありがとうございました。 なんだか開発者サマの裏話的なお話ありがとうございます。 やはりイロイロあるのですね。。。 全く未経験な自分には大変参考になるご回答でした。 ありがとうございました。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

こちらはどうでしょうか。

参考URL:
http://www.okakogi.go.jp/People/miwa/program/c_lang/c_furoku.html
  • manayu
  • ベストアンサー率53% (79/148)
回答No.2

ここが参考になるかと・・・。 http://www.okakogi.go.jp/People/miwa/program/c_lang/c_furoku.html ちなみに、私は、voidは「ボイド」、 stdio.hは「エスティーディーアイオー ドットエイチ」、 strは「エスティーアール」もしくは「ストリング」 と呼んでいます。 (例えば、strcatは「ストリングキャット」。)

参考URL:
http://www.okakogi.go.jp/People/miwa/program/c_lang/c_furoku.html
hazzy_funky
質問者

お礼

ご回答本当にありがとうございました。 参考URLは大変参考になりました。 ありがとうございました。

関連するQ&A

  • while文の条件

    参考書でC言語を勉強しておりますが、タイトルの件で分からないことがあります。 #include <stdio.h> #include <string.h> void main(void) { char *p = "stop"; char str[80]; do { printf("文字列を入力してください:"); gets(str); }while(strcmp(p , str)); } while文は条件が真(0でない)の場合に繰り返し、偽(0)の場合に抜けるという認識なんですが、上記のwhile文だと、strcmp()の戻り値が0の場合(偽)に繰り返しを抜けます。 なぜなのか分かりません。 どなたか教えてください。

  • while文の条件

    参考書でC言語を勉強しておりますが、タイトルの件で分からないことがあります。 #include <stdio.h> #include <string.h> void main(void) { char *p = "stop"; char str[80]; do { printf("文字列を入力してください:"); gets(str); }while(strcmp(p , str)); } while文は条件が真(0でない)の場合に繰り返し、偽(0)の場合に抜けるという認識なんですが、上記のwhile文だと、strcmp()の戻り値が0の場合(偽)に繰り返しを抜けます。 なぜなのか分かりません。 どなたか教えてください。

  • str[101]までしかないのに???

    #include<stdio.h> int main(void){ int str[101]; int *pt,i,a,count=0; pt=str; *pt=0; for(i=0;i<101;i++){ a=*pt+i; pt++; *pt=a; printf("%5d",*pt); count++; if(0==(count%10)){ putchar('\n'); } } return 0; } の答えが 0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190 210 231 253 276 300 325 351 378 406 435 465 496 528 561 595 630 666 703 741 780 820 861 903 946 990 1035 1081 1128 1176 1225 1275 1326 1378 1431 1485 1540 1596 1653 1711 1770 1830 1891 1953 2016 2080 2145 2211 2278 2346 2415 2485 2556 2628 2701 2775 2850 2926 3003 3081 3160 3240 3321 3403 3486 3570 3655 3741 3828 3916 4005 4095 4186 4278 4371 4465 4560 4656 4753 4851 4950 5050 なんですが、str[101]までしかないのに最後の5050はstr[102]なので表示されないと思うんですが、何故表示されるのか分かりません。お願いします(_ _)

  • 文字列str内の全ての数字を削除する関数

    文字列str内の全ての数字を削除する関数 void del_digit(char str[]) を作成。 (例えば、"ab1C9"を受け取ったら、"ABC"にする) という関数を作りたいのですが、うまくいきません。 過去に似たような『文字列内の数字削除』の質問をされた方が いましたが、ポインタを使っていました。 http://okwave.jp/qa1775576.html ポインタを使わずにするには、どうしたらよいのでしょうか? 途中まで作ってみたのですが、うまく動きません。 #include <stdio.h> #include <ctype.h> void del_digit(char str[]) {     unsigned i = 0, j = 0;     char ctr[] = {'0'};     while (str[i] != '\0') {           ctr[i] = str[i];           i++;     }     i = 0;     while (ctr[i] != '\0') {           if (ctr[i] < '0' || ctr[i] > '9') {              str[j] = toupper(ctr[i]);              j++;           }           i++;     }     str[j] = '\0'; } int main(void) {     char str[100];     printf("文字列を入力してください:");     scanf("%s", str);     del_digit(str);     printf("%s\n", str);     return (0); }

  • int とcharの使い方と違い

    教えてgooに投稿するのは初めてですがよろしくお願いします。 最近C言語を勉強し始めた初心者です。 ネットのサイトを見て独学でしています。 過去スレッドをさらっと見て聞きたいことが書いてなかったので投稿します。(同じスレッドがあったらすみませんOTL) #include<stdio.h> int main(void) { int str='a'; printf("str=%c\n",str); return0; } この上のプログラムでは str=a と出て、エラーが出ずにコンパイル出来ました。でも、 #include<stdio.h> int main(void) { int str[]="abc"; printf("str=%s\n",str); return0; } とするとエラーが出ます。 int とcharの使い方と違いについて詳しく教えてほしいです>< お願いします。

  • int main()、void main()、void main(void)、int main(void)

    今日、大学でC言語の講義の時間、先生が、 #include <stdio.h> void main(void){ } と宣言してプログラムを書くと教えていました。 main関数には、 main() void main() void main( void ) int main() int main( void ) と、人によりいくつかの描き方があったりします。 どれが本当は正しいのでしょうか? void mainはすべきではないとなんかの本で読んだのですが・・。

  • 文字列strの中から文字cを探すプログラム(C言語)がわからない

    文字列strの中から文字cを探すプログラム(C言語)がわからない 柴田望洋さんの「[新版]明解C言語」という本の演習11-2なんですがどうしてもわかりません。間違いは無いと思うのにコンパイルすると警告を吐かれます。 僕が書いたプログラムを載せます。 /* 文字列strの中に、文字cが含まれていれば(複数ある場合は、最も先頭側とする)、 その文字へのポインタを返し、含まれていなければNULLを返す関数 char *str_chr(const char *str, int c) {} を作成せよ。 */ #include<stdio.h> char *str_chr(const char *str, int c){ while(*str){ if(*str==c) return str; str++; }     return NULL; } int main(){ char *str; char c; scanf("%s",str); scanf(" %c",c);     printf("%d",str_chr(str,c)); return 0; } コンパイラは「関数str_chrのif分の中のreturn strの型変換に問題がある」と言っているんです。 型変換はしるつもりは無いのにコンパイラはなぜそのように認識するのでしょうか。 またネット答えを探しましたがどうやらこのreturn strの部分はreturn (char*)strが正解のようです。意味がわかりません。strはポインタなのになぜまたわざわざchar型に変換しているのですか?といか(char*)の意味が根本的にわかりません。 質問ばかりですみません。初心者でポインタがどうにも理解できないんです。 誰か詳しい人教えてください。 お願いします。

  • C言語ののポインタについて

    「明解C言語 入門編」p262の演習11-4についての質問です。 このサイトも参考にしてみて、 入力された文字の大文字小文字を反転するプログラムをvimで書いてみたのですが #include <stdio.h> #include <ctype.h> void str_toupper(char *str) { while (*str = toupper(*str)) { *str++; } } void str_tolower(char *str) { while(*str = tolower(*str)) { *str++; } } int main(void) { char str[100]; printf("文字列を入力してください:"); scanf("%s", str); str_toupper(str); printf("大文字:%s\n", str); str_tolower(str); printf("小文字:%s\n", str); return(0); } clangを用いてコンパイルすると4warnings generatedと出ます。 ------------------------------------------------------------ ex11-4.c:6:13: note: use '==' to turn this assignment into an equality comparison while(*str = toupper(*str)){ ^ ------------------------------------------------------------- こんなのや ---------------------------------------- ex11-4.c:7:3: warning: expression result unused [-Wunused-value] *str++; ^~~~~~ ---------------------------------------------------- といった警告が表示されます。 どこをどう訂正すれば良いのでしょうか。 よろしくお願いします。

  • 入力された文字列の中の数字を全てを削除するプログラム(C言語)

    入力された文字列の中の数字を全てを削除するプログラム(C言語) 柴田望洋さんの「明解C言語入門編」という本の演習11-5に当たるこのプログラムの作り方がどうしてもわかりません。 なんとか書いてみましたが、実行してもうまくいきません。 どこが悪いのか自分でもわかりません。 誰か教えてくださいお願いします。 以下が僕が書いたコードです。 #include<stdio.h> void del_digit(char *str){ unsigned i=0; char *a; while(*(str+i)){ if(*(str+i)<0 || *(str+i)>9) *a++=*(str+i); i++; } printf("%s",a); } int main(){ char *str; scanf(" %s",str); del_digit(str); return 0; }

  • パイプってどうやって使うの?

    1つ目のプログラムの出力を2つ目のプログラムで受け取りたいのですが、どうすればいいですか? -- 1 -- #include <stdio.h> #include <windows.h> int main(void){     int a=0;     while(1){         fprintf(stdout,"%d\n",a++);         Sleep(1000);     }     return 0; } これを2のプログラムで受け取ります。 #include <stdio.h> int main(void){     char str[128];     while(1){         if(fgets(str,sizeof(str),stdin)==NULL)             break;     printf("%s",str);     }     return 0; } これをコマンドプロンプトで 1 | 2 と入力してみましたが、何も表示されません・・。 個別に実行すると正常に動作します。 環境はXPです。どうしたら受け渡しが出来るのでしょうか?

専門家に質問してみよう