將字串的每個字元替換為ASCII值是其K倍的字元


在 C++ 程式設計領域,可以將指定字串的每個字元替換為 ASCII 值比原始字元高 K 倍的符號。這可以透過實現簡單的演算法技術來實現。本文深入探討了語法、演算法和兩種解決問題的不同方法,並附帶了 C++ 中的程式碼示例。

語法

要將字串中的每個字元替換為 ASCII 值乘以 K 的字元,語法如下:

string replace(string str, int K);

這裡,“str”表示需要修改的字串,“K”表示每個字元的 ASCII 值將乘以的整數值。

演算法

將字串的每個字元替換為 ASCII 值乘以 K 的字元的演算法過程如下:

  • 開始

  • 輸入字串“str”和整數值“K”的值。

  • 使用迴圈遍歷“str”的每個字元。

  • 對於每個字元,透過使用 (int)str[i] 進行型別轉換將其轉換為數值,從而計算其 ASCII 表示形式。

  • 將 ASCII 值乘以“K”以確定新的 ASCII 值。

  • 透過使用 (char)(ASCII 值) 將新的 ASCII 值轉換回字元,用獲得的新字元替換該字元。

  • 對字串中存在的每個字元重複步驟 3 到 6。

  • 結束

方法 1

第一種方法需要利用“for”迴圈遍歷字串的每個字元,並在每個符號上執行必要的運算。此方法的程式碼如下:

示例

首先,我們透過計算其長度來確定輸入序列“str”的範圍。然後,透過實現“for”迴圈,我們遍歷字串的每個元素。對於每個字元,我們透過使用 (int)str[i] 將其轉換為數值表示形式來計算其 ASCII 等價物。隨後,我們將此 ASCII 值乘以常數“K”以得到新的 ASCII 值。最後,我們用透過使用 (char)(ASCII 值) 將新的 ASCII 值轉換回其字元形式獲得的新符號替換該字元。此過程對字串中的每個字元重複,生成修改後的字串作為最終結果。

#include <iostream>
#include <string>

using namespace std;

string replace(string str, int K){
   int len = str.length();
   for(int i=0; i<len; i++){
      int ascii = (int)str[i];
      int new_ascii = ascii * K;
      str[i] = (char)new_ascii;
   }
   return str;
}

int main(){
   string str = "hello";
   int K = 3;

   string new_str = replace(str, K);
   cout<<"Modified string: "<<new_str<<endl;
   return 0;
}

輸出

Modified string: 8/DDM

方法 2

另一種方法是利用字串類的“replace()”函式對每個字元執行必要的運算。此技術的程式碼如下:

示例

最初,我們計算輸入字串“str”的長度。然後,使用“for”迴圈,我們遍歷字串的每個字元。對於每個符號,我們透過使用 (int)str[i] 將其轉換為整數值來計算其 ASCII 值。我們將 ASCII 值乘以“K”以確定新的 ASCII 值。我們建立一個名為“new_char”的新字串,並新增透過使用 (char)(ASCII 值) 將新的 ASCII 值轉換回字元獲得的新符號。然後,我們利用字串類的“replace()”函式用新符號“new_char”替換位於索引“i”處的字元。這些步驟對字串中的每個字元重複。然後,修改後的字串作為最終結果返回。

#include <iostream>
#include <string>

using namespace std;

string replace(string str, int K){
   int len = str.length();
   for(int i=0; i<len; i++){
      int ascii = (int)str[i];
      int new_ascii = ascii * K;
      string new_char = "";
      new_char += (char)new_ascii;
      str.replace(i, 1, new_char);
   }
   return str;
}

int main(){
   string str = "helloworld";
   int K = 3;
   string new_str = replace(str, K);

   cout<<"Modified string: "<<new_str<<endl;
   return 0;
}

輸出

Modified string: 8/DDMeMVD,

結論

在本文中,我們探討了在 C++ 中用 ASCII 值乘以 K 的符號替換字串中每個字元的方法。介紹了兩種解決此問題的不同方法,並提供了這兩種方法的程式碼示例。此問題在需要根據應用於其 ASCII 值的某些算術運算來更改給定字串的情況下可能非常有價值。

更新於:2023年7月21日

516 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.