替換給定字串中每個連續子音序列為其長度


本文將幫助我們理解如何在給定字串中用其長度替換連續的子音序列。子音是一系列非母音的字母。這裡我們需要首先確定字串中哪些字母是子音。

例如,在單詞“abcdiopqrsu”中,子音序列為“bcd”和“pqrs”。接下來,我們將用它們的長度替換每個子音序列。因此,單詞“bcd”將替換為“3”,因為有三個連續的子音,單詞“pqrs”也一樣,替換為“4”,因為有四個連續的子音。

演算法

  • 首先,我們將定義一個函式“isConsonant()”,它接受一個字元值作為引數,以驗證其是否為子音,並以布林值的形勢返回結果。如果給定字元是子音,則此函式返回TRUE,否則返回false。

    用於查詢子音字元的邏輯解釋

    (con == 'a' || con == 'e' || con == 'i' || con == 'o' || con == 'u')

    • con 是變數的名稱。

    • ==: 等於運算子將母音值設定為變數。

    • ||: 使用按位邏輯或,它將允許設定多個母音值到變數“con”中。

  • 我們將從在主函式中定義變數“string”開始,並將值“abcdiopqrsu”儲存在字串變數中。然後我們將取一個空字串變數“result”。該函式使用for迴圈遍歷字串中的每個字元,並對每個字元,透過呼叫“isConsonant”函式檢查它是否為子音。

  • 如果字元是子音,則它將進入while迴圈,並繼續迭代,直到找到下一個子音。在while迴圈的每次迭代期間,計數器變數“counter”將遞增。一旦完成while迴圈,該函式將使用“to_string”函式將計數器的值新增到結果字串中。

  • 然後我們檢查字元是否不是子音,如果是則該函式只是將字元新增到“result”字串中。

  • 最後,我們將使用cout語句列印結果字串的值

示例

在這個程式中,我們將瞭解如何替換子音並提供其長度而不是它本身。

#include<iostream>
#include<string>
using namespace std;
bool isConsonant(char con) {
   //Check whether the given character is consonant or not.
   return !( con == 'a' || con == 'e' || con == 'i' || con == 'o' || con == 'u');
}
int main() {
   string str = " abcdiopqrsu";
   string result;
   for( int i=0; i < str.length(); i++) {
      if ( isConsonant(str[i]) ) {
         //Here we have to find the consonant and count its length.
         int counter = 1;
         while( isConsonant( str[i+1] ) ) {
            counter++;
            i++;
         }
         result += to_string( counter );
      } else {
         result += str[i];
      }
   }
    cout<< result << endl ;
    return 0;
}

輸出

1a3io4u

結論

我們探討了給定字串中子音序列及其長度的概念。我們瞭解瞭如何使用“==”等於和“||”按位邏輯或來檢查子音字元。然後我們設定字串變數並透過其總計數計算非子音字元。以下應用用於文字處理、資料壓縮和模式識別等。

更新於: 2023年4月20日

297 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.