Перевод Кода С++ В С

Sotona-13

New member
19.04.2013
1
0
#1
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <map>
#include <stdint.h>


void GetLargestCommonSubstring(string & result, const string & a, const string & ;)
{
const int a_size = a.size();
const int b_size = b.size();

typedef vector<int> solution;

const int solution_size = b_size + 1;
solution x(solution_size, 0), y(solution_size);

solution * previous = &x;
solution * current = &y;

int max_length = 0;
int result_index = 0;

for(int i = a_size - 1; i >= 0; —i) {
for(int j = b_size - 1; j >= 0; —j) {
int & current_match = (*current)[j];
if(a != b[j]) {
current_match = 0;
}
else {
const int length = 1 + (*previous)[j + 1];
if (length > max_length) {
max_length = length;
result_index = i;
}

current_match = length;
}
}

swap(previous, current);
}

result = a.substr(result_index, max_length);
}

typedef map<char, uint8_t> ValidChars;

void extend(ValidChars & valid, string & s)
{
for (auto i = s.begin(); i != s.end(); ++valid[*i++]);
}

void filter(ValidChars & valid, string & s)
{
s.erase(remove_if(s.begin(), s.end(), [&](char c) -> bool { return !valid.count©; }), s.end());
}

int main(int argc, char** argv)
{

string x, y, z;

printf « "Enter x: ";
scanf » x;
printf « "Enter y: ";
scanf » y;

ValidChars valid;

extend(valid, x);
extend(valid, y);

for (auto i = valid.begin(); i != valid.end(); i->second > 1 ? ++i : valid.erase(i++));

filter(valid, x);
filter(valid, y);

GetLargestCommonSubstring(z, x, y);

printf « "z: " « z « endl;

return 0;
}


Дано вот такое чудовище,кое-что я в С переписал,на остальное не хъватает мозгов
Кодпад выдает вот такое
http://codepad.org/HUxsBuhx

Кто-то может помочь с этим?
Желательно срочно

З.Ы. Не спрашивайте,зачем мне именно С,спросите преподавателя младшего брата ;)
 
R

rrrFer

#2
Код:
printf « "Enter x: ";
scanf » x;
printf « "Enter y: ";
scanf » y;
printf - функция, для нее не перегружен оператор <<, посмотри примеры ее использования

Line 19: error: iostream: No such file or directory
Line 17: error: string: No such file or directory
Line 20: error: algorithm: No such file or directory
Line 17: error: vector: No such file or directory
Line 14: error: map: No such file or directory
убери лишние инклуды, для этого не нужны мозги

Си ничего не слышал про авто, и про итераторы тоже

строки заменяй на массивы символов, вектора - на массивы, словарь на массив структур и определяй операции над ним.

Есть версия, что проще написать с нуля на Си чем переписать с плюсов )