住所録のプログラムに以下のプログラムがあってvoid chopが何をしているのかわかりません。実行結果は下にのせています。不足している情報がありましたら、教えてください。
コード #include <stdio.h> #include <string.h> void chop(char *p) { for (; *p; p++) ; p--; while (*p == '\r' || *p == '\n') *(p--) = 0; } void chop2(char *p) { int len = strlen(p); //\0は含まない for (int i = 0; i < len; i++) { if (p[i] == '\r' || p[i] == '\n') { p[i] = 0; } } } void dump(char * p, int len) { for (int i = 0; i < len; i++) { printf(" %02X", *p & 0xff); p++; } printf("\n"); } int main(int atgc, char** argv) { char str[10]; strcpy(str, "0\n"); printf("[%s]\n", str); chop(&str[2]); printf("[%s]\n", str); dump(str, sizeof(str)); printf("\n"); strcpy(str, "0\n"); printf("[%s]\n", str); chop2(&str[2]); printf("[%s]\n", str); dump(str, sizeof(str)); return 0; } // 実行結果 naka@naka ~ $ cd kadai/kad9-8 naka@naka ~/kadai/kad9-8 $ gcc -g void_chop.c naka@naka ~/kadai/kad9-8 $ a.exe [0 ] [0] 30 00 00 50 37 00 80 00 40 00 [0 ] [0 ] 30 0A 00 50 37 00 80 00 40 00 naka@naka ~/kadai/kad9-8 $
コードタグの内側に置くのはコードだけにし、質問文そのもの(自然言語の部分)はコードタグの外側に置くようにしてください。コードタグの内側だと長い行の折り曲げがされないため横スクロールしないと文章が読めないのです。
よく指摘されます。なかなかよく質問文をどこに書けばいいか初心者にはわかりにくいです。わたしもそうしたいと思ってメールで問い合わせたりしているんですが、具体的に質問コーナーでおしえていただければありがたいのですが。
手でマークダウン記法を適用できるようにするといろいろ融通が利きます。コードはバッククオート三つで両側から挟めばよいです。 https://teratail.com/help#about-markdown :
https://teratail.com/questions/96312
こんばんわ、いつもありがとうございます。これで質問で怒られなくなるとおもいます。9章の課題も最後の自由課題9-8に来ました。以前集めた住所録のプログラムを読んでいます。またひっかっかたら、おねがいいたします。仕事に行ってきます。
回答1件
あなたの回答
tips
プレビュー