今日の成果

実習8-6

実習8-6
数字を英文にするプログラムを作成する。たとえば、895は"eight nine five"に変換する。

実装例

#include 
#include 

int main ()
{
    std::string input_number ;
    int column ;
    std::string english_number[10] = {"zero","one","two","three"
                                     ,"four","five","six","seven"
                                     ,"eight","nine"};
    std::cout << "please input a number:" ;
    std::cin >> input_number ;
    for (column=0;(column < input_number.length());column++)
    {
        std::cout 
            << english_number[(static_cast(input_number[column]) - 48)] 
            << " " ;
    }
    std::cout << '\n' ;
    return(0);
}

ちょっとstatic_castはどーなの?という気もするけど、ひとまず。あともう一個ぐらいなんか例題やって今日は寝よう。

実習9-1

文字列に含まれている「ワード」の数をカウントするプロシジャを作成する(「ワード」の正確な意味をドキュメントに記載しておくこと)。そして、このプロシジャをテストするプログラムを作成する。

ワードは空白で区切られた英数記号の並びを指すものとする。カンマで区切られていても空白がなければひとつづきのワードとみなす(手抜き)。

#include 
#include 

int NumberOfWords(std::string buffer)
{
    const int SEARCH_WORD = 0 ;
    const int SEARCH_SPACE = 1 ;
    std::string word = "" ;
    int state = SEARCH_WORD ;
    int column = 0 ;
    int count = 0 ;
    for (column = 0;column < buffer.length();column++)
    {
        switch (state)
        {
            case SEARCH_WORD:
                if (buffer[column] != ' ')
                {
                    count = count + 1 ;
                    state = SEARCH_SPACE ;
                    std::cout << buffer[column] ;
                };
                break ;
            case SEARCH_SPACE:
                if (buffer[column] == ' ')
                {
                   std::cout << '\n' ;
                   state = SEARCH_WORD ;
                } else {
                   std::cout << buffer[column] ;
                };
                break ;
            default:
                std::cout << "crushed!" ;
                return(0) ;
        }
    }
    std::cout << '\n' ;
    return(count);
}

int main ()
{
    int result ;
    std::string teststring = "a quick brown fox jumped over the razy dogs.";
    std::cout << "Testing start." << '\n' 
              << "Test string is '" << teststring << "'" 
              << '\n' ;
    result = NumberOfWords(teststring) ;
    std::cout << "Result:" << result << '\n' ;
    if (result == 9)
    {
        std::cout << "success!" << '\n' ;
    } else {
        std::cout << "failed!"  << '\n' ;
    } ;
    return(0);
}

一応動いたっぽい。たのしー♪