2014年2月15日土曜日

開発環境

C++実践プログラミング (スティーブ オウアルライン (著)、Steve Oualline (原著)、Steve Oualline(原著)、望月 康司(翻訳)、クイープ(翻訳) 、オライリー・ジャパン)のⅡ部(シンプルなプログラミング)の9章(変数のスコープと関数)、9.8(プログラミング実習)、実習 9-4.を解いてみる。

その他参考書籍

実習 9-4.

コード(BBEdit, Emacs)

sample.cpp

#include <string>
#include <iostream>

/*  hash_code -- 文字列の各文字の値を足し合わせたハッシュコードを生成
 * 
 *  s -- 文字列
 * 
 *  戻り値
 *    ハッシュコード
 */
int hash_code(std::string s)
{
    int n = 0;
    int i;
    
    for (i = 0; i < s.length(); ++i) {
        n += s.at(i);
    }
    
    return n;
}

int main()
{
    std::string line;
    
    while(true) {
        std::cout << "文字列を入力: ";
        std::getline(std::cin, line);
        if (line == "") {
            break;
        }
        std::cout << hash_code(line) << '\n';
    }
    
    return (0);
}

Makefile

#
# FSFのg++コンパイラ用のMakefile
#
CC=g++
CFLAGS=-g -Wall
all: sample

sample: sample.cpp
 $(CC) $(CFLAGS) -o sample sample.cpp

clean:
 rm sample

入出力結果(Terminal)

$ make && ./sample
g++ -g -Wall -o sample sample.cpp
文字列を入力: a
97
文字列を入力: b
98
文字列を入力: c
99
文字列を入力: d
100
文字列を入力: e
101
文字列を入力: ab
195
文字列を入力: ac
196
文字列を入力: ad
197
文字列を入力: ae
198
文字列を入力: aa 
194
文字列を入力: aab
292
文字列を入力: aac
293
文字列を入力: aad
294
文字列を入力: aae
295
文字列を入力: aaaa
388
文字列を入力: aaab
389
文字列を入力: 
$

0 コメント:

コメントを投稿