More actions
imported>Unknown No edit summary |
(Repair batch-0001 pages from live compare) |
||
| Line 34: | Line 34: | ||
for (int i = 0; i < container.size(); i++) | for (int i = 0; i < container.size(); i++) | ||
{ | { | ||
if (container | if (container[i]->data == word->data) | ||
{ | { | ||
isFind = true; | isFind = true; | ||
container | container[i]->count++; | ||
break; | break; | ||
} | } | ||
| Line 55: | Line 55: | ||
{ | { | ||
for (int i = 0; i < container.size(); i++) | for (int i = 0; i < container.size(); i++) | ||
cout << container | cout << container[i]->data << ' ' << container[i]->count << ' ' << container[i]->asciiSum << endl; | ||
} | } | ||
| Line 61: | Line 61: | ||
void sortShow() | void sortShow() | ||
{ | { | ||
sort(&container | sort(&container[0], &container[container.size()], Word()); | ||
show(); | show(); | ||
} | } | ||
| Line 73: | Line 73: | ||
{ | { | ||
newStr = ""; | newStr = ""; | ||
temp = container | temp = container[i]->data; | ||
for(int j = 0; j < temp.size(); j++) | for(int j = 0; j < temp.size(); j++) | ||
if (('A' <= temp | if (('A' <= temp[j] && temp[j] <= 'Z') || ('a' <= temp[j] && temp[j] <= 'z')) | ||
newStr += temp | newStr += temp[j]; | ||
container | container[i]->data = newStr; | ||
} | } | ||
| Line 88: | Line 88: | ||
for (int i = 0; i < container.size(); i++) | for (int i = 0; i < container.size(); i++) | ||
{ | { | ||
temp = container | temp = container[i]->data; | ||
for (int j = 0; j < temp.size(); j++) | for (int j = 0; j < temp.size(); j++) | ||
container | container[i]->asciiSum += int(temp[j]); | ||
} | } | ||
} | } | ||
| Line 99: | Line 99: | ||
for (int i = 0; i < container.size(); i++) | for (int i = 0; i < container.size(); i++) | ||
{ | { | ||
temp = container | temp = container[i]; | ||
delete temp; | delete temp; | ||
} | } | ||
Latest revision as of 23:56, 26 March 2026
CodeRace 아영 보창
#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;
}