0
#include <iostream>
#include <cstdlib>
#include <string>
#include <ctype.h>
#include <cmath>
#include <functional>
#include <numeric>
#include <algorithm>

using namespace std;

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

int length = 0;

cout << "Enter a string: ";

string buffer;
char buff[1024];

while (getline(cin, buffer)) 
{
    buffer.erase(remove_if(buffer.begin(), buffer.end(), not1(ptr_fun(isalnum))), buffer.end());
    break;
}

length = buffer.length();
int squareNum = ceil(sqrt(length));

strcpy(buff, buffer.c_str());

char** block = new char*[squareNum];
for(int i = 0; i < squareNum; ++i)
block[i] = new char[squareNum];

int count = 0 ;

for (int i = 0 ; i < squareNum ; i++)
{
    for (int j = 0 ; j < squareNum ; j++)
    {
        block[i][j] = buff[count++];
    }
}

for (int i = 0 ; i < squareNum ; i++)
{
    for (int j = 0 ; j < squareNum ; j++)
    {
        cout.put(block[j][i]) ;
    }
}

return 0;

}

エラー:

asst4.cpp: 関数 'int main(int, char**)' 内:
asst4.cpp:30:76: エラー: 'ptr_fun()' の呼び出しに一致する関数がありません
asst4.cpp:30:76: 注: 候補は:
/usr/include/c++/4.6/bits/stl_function.h:443:5: 注意: テンプレート std::pointer_to_unary_function std::ptr_fun(_Result (*)(_Arg))
/usr/include/c++/4.6/bits/stl_function.h:469:5: 注意: テンプレート std::pointer_to_binary_function std::ptr_fun(_Result (*)(_Arg1, _Arg2))
asst4.cpp:37:29: エラー: 'strcpy' はこのスコープで宣言されていません
4

3 に答える 3