プログラミング+α学習ブログ

勉強したことの備忘録です。

文字列を流しながら表示するプログラム

流れない(T0T)

#include <math.h>
#include <stdio.h>
#include <string.h>

/*---時間を浪費する(間を置く) ---*/
void wait(int tm)
{
    int i, j;
    
    for (i = 1; i < tm; i++)
        for (j = 1; j < tm; j++) {  // 次行は宣言なので{}は必要
            double x = sin(i) * cos(j); // 式は何でも良い。
        }
}

int main(void)
{
    int cnt = 0;
    char mes[] = "BohYoh Shibata"; // 表示する文字列
    int len = strlen(mes);  // 表示する文字列の文字数

    while (1) {
        int i;
        putchar('\r');  // カーソルを行の先頭へ
        for (i = 0; i < len; i++) {
            if (cnt + i < len)
                putchar(mes[cnt + i]);
            else
                putchar(mes[cnt + i - len]);
        }
        wait(1000); // 数値を変えるとスピードが変化
        if (cnt < len - 1)
            cnt++;
        else
            cnt = 0;

    }
    
    return (0);
}

文字列を空文字列にするプログラム

#include <stdio.h>

int main(void)
{
    char str[] = "ABC";
    
    printf("str=%s\n", str);    // strは"ABC"
    
    str[0] = '\0';  // 配列の先頭要素にナル文字を代入
    
    puts("文字列strを空文字列にしました。");
    printf("str=%s\n", str);    // strは空文字列
    
    return (0);
}

実行結果

str=ABC
文字列strを空文字列にしました。
str=

配列に文字列を格納して表示するプログラム(1)

#include <stdio.h>

int main(void)
{
    char str[7];    // 文字列を格納する配列
    
    str[0] = 'S';
    str[1] = 'T';
    str[2] = 'R';
    str[3] = 'I';
    str[4] = 'N';
    str[5] = 'G';
    str[6] = '\0';
    
    printf("文字列strは%sです。\n", str);
    
    return (0);
}

実行結果

文字列strはSTRINGです。

入力に現れた改行の数を表示するプログラム

#include <stdio.h>

int main(void)
{
    int ch;
    int n_count = 0;       // 改行文字の数
    
    while ((ch = getchar()) != EOF)
        if (ch == '\n')
            n_count++;
    
    printf("行数:%d\n", n_count);
    
    return (0);
}

実行結果

Hello!
This is a pen.
行数:2