class문제들을 풀고 있는데 2에서 안 푼 브론즈1 문제가 있어서 풀어봤다. 문자열 중에 숫자로 된 문자열을 찾고 싶은데 어떤 함수를 써야할 지 몰라서 찾아 보았다.
int atoi(const char *);
atoi는 해당 문자가 숫자이면 숫자로 변환해주고 아니면 0을 반환한다.
#include <iostream>에 포함 되어서 다른 헤더를 추가해주지 않아도 된다.
#include <iostream>
using namespace std;
int main(void){
string s[3];
int a, k;
for(int i=0;i<3;i++){
cin>>s[i];
}
for(int i=0;i<3;i++){
if(atoi(s[i].c_str()) != 0){
a = atoi(s[i].c_str());
k = i;
break;
}
}
int num = a + 3 - k;
if(num%3 == 0 && num%5 == 0){
cout<<"FizzBuzz";
} else if(num % 3 == 0){
cout<<"Fizz";
} else if(num%5 == 0){
cout<<"Buzz";
}else{
cout<<num;
}
}
원래 atoi(s[i])로 했었는데 atoi에는 char * 형태를 넣어주어야 해서 c.str()을 사용하였다.
c.str()함수는 string을 C style의 문자열로 바꿀 때 사용하는 함수이다.
char * 은 문자 배열을 가리키는 포인터이다.