Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 길이 'k'의 모든 부분 문자열을 기본 'b'에서 10진수로 변환

<시간/>

이 튜토리얼에서는 길이가 'k'인 모든 부분 문자열을 밑수 'b'에서 10진수로 변환하는 프로그램에 대해 논의할 것입니다.

이를 위해 특정 길이의 문자열이 제공됩니다. 우리의 임무는 'k' 크기의 주어진 문자열에서 부분 문자열을 가져와 기본 'b'에 있는 십진수로 변환하는 것입니다.

예시

#include <bits/stdc++.h>
using namespace std;
//converting the substrings to decimals
int convert_substrings(string str, int k, int b){
   for (int i=0; i + k <= str.size(); i++){
      //getting the substring
      string sub = str.substr(i, k);
      //calculating the decimal equivalent
      int sum = 0, counter = 0;
      for (int i = sub.size() - 1; i >= 0; i--){
         sum = sum + ((sub.at(i) - '0') * pow(b, counter));
         counter++;
      }
      cout << sum << " ";
   }
}
int main(){
   string str = "12212";
   int b = 3, k = 3;
   convert_substrings(str, b, k);
   return 0;
}

출력

17 25 23