1.9 文字配列, 演習1-17 K&R プログラミング言語C

1.9 文字配列

C では文字列は '\0' を終端とする配列で表現する。
文字配列の長さは '\0' の分が含まれる。

演習1-16

問題文の意味がよくわからないのでパス。

演習1-17

#include <stdio.h>

#define MAXLINE 1024 /* 入力行の最大長 */
#define OVERLINE 80  /* この数値より長い行を印字 */

int mygetline(char line[], int maxline);

/* 80字より長い行を印字する */
int main(int argc, char *argv[])
{
    int len;    /* 現在行の長さ */
    char line[MAXLINE];     /* 現在の入力行 */

    while ((len = mygetline(line, MAXLINE)) > 0) {
        if (len > OVERLINE) { /* 80字より長い場合 */
            printf("%d:%s", len, line); /* 行頭に長さを印字する */
        }
    }

    return 0;
}

/* mygetline : s に行を入れ、長さを返す */
int mygetline(char s[], int lim)
{
    int c, i;

    for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i) {
        s[i] = c;
    }
    if (c == '\n') {
        s[i] = c;
        ++i;
    }
    s[i] = '
#include <stdio.h>

#define MAXLINE 1024 /* 入力行の最大長 */
#define OVERLINE 80  /* この数値より長い行を印字 */

int mygetline(char line[], int maxline);

/* 80字より長い行を印字する */
int main(int argc, char *argv[])
{
    int len;    /* 現在行の長さ */
    char line[MAXLINE];     /* 現在の入力行 */

    while ((len = mygetline(line, MAXLINE)) > 0) {
        if (len > OVERLINE) { /* 80字より長い場合 */
            printf("%d:%s", len, line); /* 行頭に長さを印字する */
        }
    }

    return 0;
}

/* mygetline : s に行を入れ、長さを返す */
int mygetline(char s[], int lim)
{
    int c, i;

    for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i) {
        s[i] = c;
    }
    if (c == '\n') {
        s[i] = c;
        ++i;
    }
    s[i] = '\0';
    return i;
}
'
; return i; }
プログラミング言語C 第2版 ANSI規格準拠
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
«
»