交换可分数并获得声明的无效错误

时间:2014-03-01 00:52:19

标签: c++ algorithm pointers

我正在开发一个程序,它可以反转所有可以被特定数字整除的给定数字。

对于前: input =“13694097” 可分数= 3; 输入中可被3整除的数字为:3,6,9,9。因此反向应为9,9,6,3。如果我们替换当前数组中的那个,那么我们得到 ouput =“19964037”

这是程序的代码。我正在尝试构建prorgram,但我一直得到以下错误:

#include <iostream>

using namespace std;

int convert_to_int(char s) 
{
    return s - '0';   
}

void reverse_string(char *string, int length, int number) 
{

    char *start = string;
    char *end = string+length-1;

    while(true) 
    {

        while((convert_to_int(*start) % number) != 0) {
            start++;
        }

        while((convert_to_int(*end) % number) != 0) {
            end--;
        }

        if(start >= end)
            break;
        else
        {
            // Swap numbers 
            char temp = *start;
            *start = *end;
            *end = temp;
        }
    }

    return;

}

int main()
{
    cout << "Hello World" << endl; 

    char input[] = "1253486794";

    void reverse_string(input, 10, 3);

    return 0;
}

错误输出:编译源代码....

$g++ -std=c++11 main.cpp -o demo -lm -pthread -lgmpxx -lgmp -lreadline 2>&1
main.cpp: In function 'int main()':
main.cpp:45:24: error: variable or field 'reverse_string' declared void
    void reverse_string(input, 10, 3);
                    ^

如何修复此错误?

1 个答案:

答案 0 :(得分:5)

更改

void reverse_string(input, 10, 3);

reverse_string(input, 10, 3);