U E D R , A S I H C RSS

Code Race/20060105/아영보창

CodeRace 아영 보창

~cpp
#include <iostream>
using namespace std;
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>

struct Word
{
	string data;
	int count;
	int asciiSum;
	bool operator() (const Word* a, const Word* b)
	{
		if (a->data < b->data)
			return true;
		return false;
	}
};

fstream fin("Alice.txt");
vector<Word*> container;

void input()
{
	Word* word;
	bool isFind;

	word = new Word;
	while(fin >> word->data)
	{
		isFind = false;
		for (int i = 0; i < container.size(); i++)
		{
			if (container[i]->data == word->data)
			{
				isFind = true;
				container[i]->count++;
				break;
			}
		}
		if (isFind == false)
		{
			word->asciiSum = 0;
			word->count = 1;
			container.push_back(word);
		}
		word = new Word();
	}
}

// 2번 요구사항
void show() 
{
	for (int i = 0; i < container.size(); i++) 
		cout << container[i]->data << ' ' << container[i]->count << ' ' << container[i]->asciiSum << endl;
}

// 3번 요구사항
void sortShow()
{
	sort(&container[0], &container[container.size()], Word());
	show();
}

// 4번 요구사항
void cutString() 
{
	string temp;
	string newStr;
	for (int i = 0; i < container.size(); i++)
	{
		newStr = "";
		temp = container[i]->data;
		for(int j = 0; j < temp.size(); j++)
			if (('A' <= temp[j] && temp[j] <= 'Z') || ('a' <= temp[j] && temp[j] <= 'z'))
				newStr += temp[j];
		container[i]->data = newStr;
	}

}

// 5번 요구사항
void asciiCalc()
{
	string temp;
	for (int i = 0; i < container.size(); i++)
	{
		temp = container[i]->data;
		for (int j = 0; j < temp.size(); j++)
			container[i]->asciiSum += int(temp[j]);
	}
}

void deleteVector()
{
	Word *temp;
	for (int i = 0; i < container.size(); i++)
	{
		temp = container[i];
		delete temp;
	}
}

int main() 
{
	input();
	cutString();
	asciiCalc();
	sortShow();
	deleteVector();
	return 0;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.2013 sec