この質問はstackoverflowで何度も尋ねられたことを知っていますが、私のような質問はありませんでした.
したがって、上記のエラーが発生しています:「int」から「const char*」への変換が無効です
「is_distinct(string year)」関数はこれとは何の関係もないと思いますが、念のため貼り付けました。
これが私のコードです:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int to_int(string number);
string to_str(int number);
bool is_distinct(string year);
int main()
{
string year = "";
cout << "Enter a word: ";
getline(cin, year);
// given the year, 'year', we are to find the next year with distinct digits
int int_year = to_int(year) + 1;
while (1 == 1) {
int year = to_int(year);
string year = to_str(year);
if (is_distinct(year)) {
cout << year << endl;
break;
}
else {
year += 1;
}
}
if (is_distinct(year)) {
cout << year << " is a distinct year.";
}
else {
cout << year << " is not a distinct year.";
}
return 0;
}
int to_int(string number) {
int integer;
istringstream(number) >> integer;
return integer;
}
string to_str(int number) {
stringstream ss;
ss << number;
string str = ss.str();
return str;
}
bool is_distinct(string year) {
bool distinct = true;
for (unsigned int x = 0; x < year.length(); x++) {
int counter = 0;
for (unsigned int y = x+1; y < year.length(); y++) {
if (year[x] == year[y]) {
counter += 1;
}
}
if (counter > 0) {
distinct = false;
break;
}
}
return distinct;
}