Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C言語】セミコロンを使わずに「Tutorials Point」を出力するプログラムの書き方

セミコロンなしで文字列を出力するには?

C言語でセミコロンを使わずに文字列を出力するには、標準出力の仕組みと、セミコロンがなぜ必要とされるのかを理解する必要があります。

セミコロンは文の終わりを示す記号で、プログラムに対して「ここで文が終わる」ことを伝える役割を果たします。標準出力に使われるprintfは、標準入出力ライブラリ(stdio.h)に含まれる関数です。まずはprintf()関数の仕組みを詳しく見ていきましょう。

int printf(const char *format, ...)

この関数は整数値を返し、formatと...(可変長引数)を受け取ります。formatは出力画面に表示される文字列であり、...は文字列の内容に応じて関数に渡される追加の引数です。

そして重要なポイントとして、printf()関数は画面に出力した文字数を戻り値として返します

この仕組みを利用することで、セミコロン(文の終端)を使わずに文字列を出力する方法を見出すことができます。if文やswitch文、while文など、条件式を評価する構文は、条件部分にセミコロンを必要としません。printf()の戻り値は出力した文字数(0以外の値)となるため、条件式として「真」と判定されます。これを活用すれば、セミコロンなしで文字列を出力できるのです。

以下に、セミコロンを使わずに文字列を出力する具体的な方法をいくつか紹介します。

1. if条件を使う方法

#include<stdio.h>
int main() {
    if (printf("Tutorials point"))
    { }
}

2. switch文を使う方法

#include<stdio.h>
int main() {
    switch (printf("Tutorials point"))
    { }
}

3. whileループを使う方法

#include<stdio.h>
int main() {
    while (printf("Tutorials point"))
    { }
}

なお、whileループを使う場合は注意が必要です。printf()が実行のたびに文字数(0以外)を返すため、条件が常に真となり無限ループに陥ります。動作確認の際はご留意ください。

4. マクロを使う方法

#include<stdio.h>
#define Out printf("Tutorials point")
int main() {
    switch (Out)
    { }
}

このように、printf()の戻り値を条件式として活用することで、セミコロンを一切使わずに文字列を出力することが可能になります。実務で頻繁に使われるテクニックではありませんが、C言語の標準出力や制御構文の仕組みを深く理解するのに役立つ、良い学習例題と言えるでしょう。

  1. 【C++】セミコロンなしでプログラムを書く方法とは?

    セミコロンなしでC++プログラムを書くには?C++プログラムをセミコロンなしで記述する方法はいくつか存在します。ただし、これは極めて悪い作法であり、実際のコードで絶対に使用してはいけません。本記事はあくまで情報提供を目的として紹介するものです。セミコロンなしでC++プログラムを書く最も簡単な方法は、if文を利用することです。C++ではほぼすべての文を式として扱うことができます。そのため、処理したい文をif文の条件式(丸括弧)の中に配置すれば、文末にセミコロンを付ける必要がなくなります。コード例#include<iostream> int main() {   &

  2. 【Python】ループを使わずに数列を出力する方法:再帰呼び出しを活用した実装

    はじめに 本記事では、以下の問題に対する解決策について詳しく解説します。 問題の概要 2つの整数 N と K が与えられたとき、N が 0 より大きい間は N から K を引き続けます。そして N が 0 以下になったら、今度は元の値 N に戻るまで K を足していきます。 入力例 N = 10 K = 4 出力例 10 6 2 -2 2 6 10 アルゴリズムの考え方 N が 0 より大きい間、関数を再帰的に呼び出し続けます(各呼び出しごとに N から K を減算します)。 数値が 0 以下になったら、元の値に戻るまで各呼び出しごとに K を加算します。 加算と減算は同じ1つの関数