【C++】C++でstrchr()を使いたい
Q&A
5個の数値を入力し、それぞれに「0が含まれていれば10で割り、5が含まれていれば5で割る」作業を行い (int型・小数部分は切り捨てる) 、それらの合計を求めて出力表示するプログラムを作ろうとしています。例えば、15, 66, 51, 70, 149を入力すると、3 + 66 + 10 + 7 + 149 より235が出力されます。
しかし、次のように書いたプログラムは実行に失敗し、エディタではwhile文内のchar* str = buffer;
の部分にエラーが出ていました。
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main(){
int date[100], part[100];
for(int i = 0; i < 5; i++){
cin >> date[i];
cin >> part[i];
}
int j = 0, sum = 0;
while(j < 5){
string buffer = to_string(date[j]);
char* str = buffer; //エラーになった部分
char* p_0 = strchr(str,'0');
char* p_5 = strchr(str,'5');
if(p_0 != NULL){
part[j] /= 10;
sum += part[j];
}else if(p_5 != NULL){
part[j] /= 5;
sum += part[j];
}
j++;
}
cout << sum << endl;
}
しかし、to_string()
やC++のstrchr()
の使い方等、思い当たる箇所について色々と調べてみたものの、結局どこが間違っていたのかがどうしても分かりませんでした。
strを定義する部分でエラーになったのは何故なのでしょうか?