連載
» 2014年09月19日 11時00分 UPDATE

完全マスター! 組み込みC言語プログラミング(11):【問題10】ポインタで文字列を操作しよう (1/3)

C言語を使ったマイコン制御プログラムの“イロハ”を解説する本連載。今回も引き続き、「配列とポインタの深い関係」を探ります。

[横田一弘 埼玉県立新座総合技術高等学校 教諭,MONOist]
photo

 本連載では、これから組み込みシステムのプログラミングを学びたい人向けに、C言語を使ったマイコン制御プログラムの“イロハ”を解説していきます。

 毎回少しずつステップアップしていけるよう、本文の最後で問題を出し、次回その解答と解説を紹介していきます。では早速、前回の問題を振り返ってみましょう。


問題10 「文字列を入力し、英小文字があれば英大文字に換えて表示する」

前回の宿題(問題10):

文字列を入力し、英小文字があれば英大文字に換えて表示するプログラムを書いてみましょう。


 今回も引き続き、「配列とポインタの深い関係」を探ってみます。

 問題10は「文字列を入力し、英小文字があれば英大文字に換えて表示する」ものでした。C言語では文字列を文字の配列として扱うので、【問題8】【問題9】から応用できます。つまり、配列の添字を使っても、あるいはポインタを使ってもコーディングすることができます。

 それでは解答を発表します。まずは添字バージョンから始めます。

#include <stdio.h>
 
void main(void)
{
     char str[100];
     int i;
 
     printf("文字列を入力してください->");
     scanf("%s", str);
     for (i = 0; str[i] != '¥0'; i++) {
         if (str[i] >= 'a' && str[i] <= 'z')
             str[i] = str[i] - 'a' + 'A';
     }
     printf("%s¥n", str);
}
「strupper.c」

 strupper.cを実行すると、次のような結果になります。

photo
       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.