今日の成果
実習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); }
一応動いたっぽい。たのしー♪