#c #string #visual-studio-2019
#c #строка #visual-studio-2019
Вопрос:
Я хочу создать программу, которая подсчитывает количество каждой цифры некоторого числа. Число кратно трем целым числам, вводимым с консоли. Я преобразовал число в строку для подсчета и использовал функцию подсчета.
#include<iostream>
#include<algorithm>
#include<string>
#include<stdlib.h>
using namespace std;
int main() {
int a;
int b;
int c;
cin >> a;
cin >> b;
cin >> c;
int multi = a * b * c;
string str_multi = to_string(multi);
for (int a = 0; a <= 9;a ) {
char* tmp;
_itoa_s(a, tmp,2, 10);
cout << count(str_multi.begin(), str_multi.end(), tmp) << endl;
}
}
И я получаю код ошибки C2446.
Ошибка, в которой говорится:»‘==’: не преобразовано из ‘const_TY’ в’int'»
Эта ошибка была в файле xutility. Я думаю, что проблема заключается в функции count или
функции _iota_s, но я не знаю, как это решить.
Комментарии:
1. «Я преобразую число в строку для подсчета» — зачем вам это делать? Строка ужасна для подсчета вещей. Вам нужно целое число для подсчета.
Ответ №1:
В этом случае последним параметром std::count
должен быть a char
(или быть конвертируемым в символ), поэтому просто измените свой цикл на:
for (int a = '0'; a <= '9'; a ) {
cout << count(str_multi.begin(), str_multi.end(), a) << endl;
}