learfix">

フローチャート

(1)文字列str="C-language"を設定します。
(2)str[i]が'a'であるか比較します。
(3)'a'である時は次の文字に進みます。異なる時はresultに文字をコピーします。
(4)上記(2)と(3)をstrに記憶されている文字数分繰り返します。
(5)比較が終了したら液晶表示器に表示します。

プログラム

/*
 * avr120.c
 * 
 * 文字列から特定の文字を取り除く
 */ 


#include <avr/io.h>
#include "hd44780.h"    // EZ-LCDインクルードファイル

void InitHard( void);   // ポートの初期化

int main(void)
{
        char str[] = "C-language";
        char result[20];
        int i, j;

        InitHard();                     // ポートの初期化をします。
        lcd_init ();            // LCDの初期化をします。
        
        j = 0;
        for ( i = 0; i < 10; i++)  // strの文字が'a'と同じか比較し、異なる場合はresultに格納します。
        {
                if ( str[i] != 'a')
                {
                        result[ j++] = str[i];
                }
        }
        
        // 液晶表示器に表示します。
        lcd_locate( 0, 0);      // カーソルを1行目に移動します。

        for( i = 0; i < 10; i++)  // 元の文字列をLCDに表示します。
        {
                lcd_putc( str[i]);
        }               
        
        lcd_locate( 1, 0);      // カーソルを2行目に移動します。

        for( i = 0; i < j; i++) // 結果を表示します。
        {
                lcd_putc( result[i]);
        }
                                                
    while(1)
    {
        //TODO:: Please write your application code 
    }
}

void InitHard( void) // ポートの初期化
{
        // ポートB初期設定
        DDRB = 0xff;    // PB7~PB0を出力に設定します。
        PORTB = 0;              // PB7~PB0に'L'を出力します。
        // ポートC初期設定
        DDRC = 0x3f;    // PC7,PC6は初期(入力)、PC5~PC0を出力に設定します。
        PORTC = 0;              // PC7~PC0に'L'を出力します。
        // ポートD初期設定
        DDRD = 0xf0;    // PD7~PD4は出力、PD3~PD0は入力に設定します。
        PORTD = 0;              // PD7~PD0に'L'を出力します。
}

LCD表示

文字列"C-language"から'a'を除いた文字列が表示されました。
前ページ次ページ
AVRマイコンで始めるC言語の使い方ページの先頭へ

ナビゲーション