字串轉換(也稱為字串轉換)是 C 中的一種操作,在整個過程執行後,將結果儲存在輸出陣列中。在C 中,有一個名為「transform()」的函數,存在於C 環境的目錄中,透過它我們可以將字串轉換為新的字串。
有兩種形式的轉換函數−
一元運算
#操作應用於輸入陣列的每個元素。
手術完成後,結果將儲存在一個輸出陣列中。
二元運算
操作適用於特定陣列的每個元素。
第一個輸入元素和第二個對應的輸入元素參與了操作。
輸出資料將儲存在一個輸出數組中。
子序列字串是由對輸入字串執行各種操作(例如:刪除)產生的全新字串。對於子序列字串,操作發生時不會影響剩餘的字元。
對於字串轉換,輸入包含長度為n 1的操作字串。原始字元屬於a到z的系列。列印字串的長度在這裡被視為n,這裡是一個輸出字串。
在本文中,我們將學習如何在C 環境中轉換一個字串,使其具有abcd….z作為一個子序列。
遞歸演算法產生後續字串
透過使用遞歸方法,下面是一個可能的演算法用於一個後續字串。這是特定的字串,T是完成操作所需的時間。
步驟 1 - 計算出現次數。
步驟2 - 如果i = length(s)且j = length(T)。
第三步−然後回傳1。
第4步 - 結束。
步驟5 - 如果i = length(S)。
步驟6 - 然後回傳0。
第7步 - 結束。
步驟 8 − 計數
步驟9 - 如果,j
步驟10 − Count
#第11步 - 結束。
第12步 - Count
第13步 - 返回計數。
第14步 - 結束。
後續陣列的語法
Here, we have two given sequences. X and Y. Initialize a table with a dimension of X.length * Y.length X.label1 = X Y.label2 = Y CS1[0][] = 0 CS2[][0] = 0 Start from CS[1][1] Compare X[i] and Y[j] If X[i] = Y[j] CS[i][j] = 1 + CS[i-1, j-1] Point an arrow to CS[i][j] Else CS[i][j] = max(CS[i-1][j], CS[i][j-1]) Point an arrow to max(CS[i-1][j], CS[i][j-1])
這裡我們建立了一個後續陣列的基本工作語法。當有兩個序列時,我們必須按照以下步驟來取得輸出。
跟隨的方法
方法1−使用C 轉換字串
透過使用C 對字串進行一元操作的方法2
#使用C 對字串進行二進位操作的方法3
#使用C 列印所有可能的後續字串
使用C 將字串轉換為具有abcd….z作為子序列的方法5
#使用 C 轉換字串
在這段C 程式碼中,我們創建了一個新的字串,並從輸入字串中刪除了所有的元音字母。在這些元音字母的位置上添加了#。
範例 1
#include <bits/stdc++.h> using namespace std; string change_case(string r) { int l = r.length(); for(int i = 0 ; i < l ; i++) { if(r[i] >= 'a' && r[i] <= 'z') r[i] = r[i] - 32; else if(r[i] >= 'A' && r[i] <= 'Z') r[i] = r[i] + 32; } return r; } string delete_vowels(string a) { string temp = ""; int l = a.length(); for(int i = 0 ; i < l ; i++) { if(a[i] != 'a' && a[i] != 'e' && a[i] != 'i' && a[i] != 'o' && a[i] != 'u' && a[i] != 'A' && a[i] != 'E' && a[i] != 'O' && a[i] != 'U'&& a[i] != 'I') temp += a[i]; } return temp; } string insert_hash(string a) { string temp = ""; int l = a.length(); for(int i = 0 ; i < l ; i++) { if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')) temp = temp + '#' + a[i]; else temp = temp + a[i]; } return temp; } void transformSting(string a) { string b = delete_vowels(a); string c = change_case(b); string d = insert_hash(c); if(d=="") cout<<"-1"<<endl; else cout << d<<endl; } int main() { string a = "RudraDevDas!!"; string b = "aeiou"; transformSting(a); transformSting(b); return 0; }
輸出
#r#D#R#d#V#d#S!! -1
使用C 對字串進行一元操作
在這段特定的程式碼中,我們展示瞭如何對輸入數組進行一元操作。此函數接受一個指向單一輸入的起始和結束位置的指標。並在輸出數組的起始位置進行操作。
Example 2
的中文翻譯為:範例2
#include <iostream> #include <algorithm> using namespace std; int op_increment (int x) { x = x + 1; return x; } int main () { int n = 5; int input_array[] = {7, 16, 10, 97, 2001}; int output_array[n]; std::cout << "Input array present here:"; for(int i=0; i<5; i++){ cout << ' ' << input_array[i]; } cout << '\n'; transform (input_array, input_array+5, output_array, op_increment); std::cout << "The output array now contains with:"; for(int i=0; i<5; i++){ cout << ' ' << output_array[i]; } cout << '\n'; return 0; }
輸出
Input array present here: 7 16 10 97 2001 The output array now contains with: 8 17 11 98 2002
使用C 對字串進行二進位操作
在這段特定的程式碼中,我們展示瞭如何在輸入數組上進行二進位操作。函數transform()在起始點和第一個輸入陣列之間加入了一個指標。請記住,二進位操作總是在兩個輸入資料集上進行。
Example 3
的中文翻譯為:範例 3
#include <iostream> #include <algorithm> #include <vector> using namespace std; int op_add (int i, int j) { return i+j; } int main () { int n = 5; int arr1[] = {7, 16, 10, 2001, 1997}; int arr2[] = {1, 2, 3, 4, 5}; int output[n]; std::cout << "Input data in array1:"; for(int i=0; i<n; i++){ cout << ' ' << arr1[i]; } cout << '\n'; std::cout << "Input data in array2:"; for(int i=0; i<n; i++){ cout << ' ' << arr2[i]; } cout << '\n'; std::transform (arr1, arr1+n, arr2, output, op_add); std::cout << "Output array is here now:"; for(int i=0; i<5; i++){ cout << ' ' << output[i]; } cout << '\n'; return 0; }
輸出
Input data in array1: 7 16 10 2001 1997 Input data in array2: 1 2 3 4 5 Output array is here now: 8 18 13 2005 2002
使用C 列印所有後續字串
應用選擇和不選擇的概念來找出特定陣列的所有子序列。在這個過程中,可能會刪除一些字元而不改變元素的順序。在這裡,這個過程的時間複雜度是O(2^n),空間複雜度是O(n)。
範例 4
#include <bits/stdc++.h> using namespace std; void printSubsequence(string input, string output) { if (input.empty()) { cout << output << endl; return; } printSubsequence(input.substr(1), output + input[0]); printSubsequence(input.substr(1), output); } int main() { string output = ""; string input = "rudraabonikoaa"; printSubsequence(input, output); return 0; }
輸出
rudraabonikoaa rudraabonikoa rudraabonikoa rudraaboniko rudraabonikaa rudraabonika rudraabonika rudraabonik rudraabonioaa rudraabonioa rudraabonioa rudraabonio rudraaboniaa rudraabonia rudraabonia
將字串轉換為其具有abcd…z作為子序列
這是一種特定的過程,用於將字串轉換為具有abcd...z作為子序列的形式。
初始化字元。
如果長度小於26,則傳回false。
迭代循環從0到s.size() - 1。
如果字元達到z,則跳出循環。
如果目前字元小於s或等於字元。
將目前字元的增量替換為1。
如果字元小於或等於 z,則傳回 false。
否則,回傳true。
在这个过程中,时间复杂度为O(n),辅助空间为O(1)。这里,n是特定字符串的长度。
Example 5
的中文翻译为:示例5
#include <bits/stdc++.h> using namespace std; bool transformString(string& s) { char ch = 'a'; if (s.size() < 26) return false; for (int i = 0; i < s.size(); i++) { if (int(ch) > int('z')) break; if (s[i] <= ch) { s[i] = ch; ch = char(int(ch) + 1); } } if (ch <= 'z') return false; return true; } int main() { string str = "aaaaaaaaaaaaaaaaaaaaaaaaaaa"; if (transformString(str)) cout << str << endl; else cout << "Not Possible" << endl; return 0; }
输出
abcdefghijklmnopqrstuvwxyza
结论
在本文中,我们学习了使用C++环境进行字符串转换及其不同形式。通过遵循特定的算法和语法,我们检查和构建了一些不同的C++代码,并了解了如何转换字符串,使其具有abcd...z作为子序列。
以上是將一個字串轉換為其具有abcd..z作為子序列的形式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

使用Boolean类的parseBoolean()方法将字符串转换为布尔值的方法在Java编程中,经常会遇到需要将字符串转换为布尔值的情况。而Java中的Boolean类提供了一个非常方便的方法——parseBoolean(),可以将字符串转换为对应的布尔值。本文将详细介绍这个方法的使用,并提供相应的代码示例。首先,我们需要了解parseBoolean()方

快速学会在Go语言中进行字符串到数组的转换在Go语言中,字符串与数组之间的转换是一个常见的操作,特别是在处理数据时经常会遇到需要将字符串转换为数组的情况。本文将介绍如何在Go语言中快速学会实现字符串到数组的转换,让你能够轻松应对类似的问题。在Go语言中,我们可以使用strings包提供的Split函数来将字符串按照指定的分隔符拆分成一个数组。以下是一

使用Java的Double.parseDouble()函数将字符串转换为双精度浮点数在Java编程中,我们经常需要将字符串转换为数值类型。对于双精度浮点数,Java提供了一个非常方便的方法,即Double.parseDouble()函数。本文将介绍该函数的用法,并附上一些示例代码,帮助读者更好地理解和使用该函数。Double.parseDouble()函数是

StringBuilder类的append()方法接受String值并将其添加到当前对象。将字符串值转换为StringBuilder对象-获取字符串值。附加使用append()方法将字符串获取到StringBuilder。示例在下面的Java程序中,我们是将字符串数组转换为单个StringBuilder对象。 实时演示publicclassStringToStringBuilder{ publicstaticvoidmain(Stringargs[]){&a

标题:使用PHP实现字符串转换为16进制并实现反向输出在日常开发中,我们有时候需要将字符串转换为16进制表示,以便进行数据传输或加密处理。本文将介绍如何使用PHP实现将字符串转换为16进制,并实现反向输出的功能。首先,我们需要编写一个PHP函数,来实现将字符串转换为16进制的功能。以下是一个示例代码:functionstringToHex($string)

使用PHP函数"strtolower"将字符串转换为小写在PHP中,有许多函数可以用来转换字符串的大小写。其中一个非常常用的函数是strtolower()。这个函数可以将字符串中的所有字符都转换为小写。下面是一个简单的示例代码,展示如何使用strtolower()函数来转换字符串为小写:<?php//原始字符串$string="

MySQL中如何使用LOWER函数将字符串转换为小写在MySQL数据库中,我们经常遇到需要将字符串转换为小写的情况,比如将用户输入的用户名转换为小写后进行验证,或者对某一列进行大小写不敏感的查找。这时候就可以使用MySQL内置函数LOWER来完成这个任务。LOWER函数是一种字符串函数,其作用是将字符串中的大写字母转换为小写。使用LOWER函数可以轻松地将字

如何使用Python的upper()函数将字符串转换为大写,需要具体代码示例Python是一种简单易学的编程语言,它提供了许多内置函数来处理字符串。其中一种常用的函数是upper()函数,它可以将字符串中的所有字母转换为大写形式。本文将详细介绍如何使用Python的upper()函数,并提供相应的代码示例。首先,让我们来了解一下upper()函数的用法。up


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Dreamweaver Mac版
視覺化網頁開發工具