2015-10-15 80 views
-1

我正在學習C++,我應該編寫一個函數(ConvertString)來修改輸入字符串input_string by 用字符替換每個字母字符,這是mod_int在字母表中的位置。例如,如果如何寫一個ConvertString函數

input_string:Hello
MOD_INT:4
mod_string:Lipps // L = H + 4,I = E + 4等

有人能幫助我嗎?
謝謝!

int x; 
x = input_string.length(); 
for (int i=0; i<input_string.length(); i++) 
    if (isalpha(input_string[x])) 
    { 
     int start = 65; 
     if (islower(input_string[x])) 
      int start = 97; 
     return ConvertString(input_string, mod_int = 
       (((int)input_string[x] - start + mod_int) % 26) + start); 
    } else cout << input_string[x]; 
+0

只是好奇,字母「Z」會發生什麼?它會進入一個符號或環繞字母「c」 –

+0

'z'應該被'a'代替 – Jaaadeee

+1

如果你告訴我們你已經嘗試了什麼,並解釋它爲什麼以及如何失敗以及你在哪裏需要幫忙。 – 5gon12eder

回答

0

您可以將輸入存儲在std::string開始。然後,考慮使用std::transform來使用您的功能進行轉換。我給你舉個例子與toupper()功能,你應該用你需要寫函數替換(並傳遞指針指向函數,而不是toupper()):

#include <algorithm> 
#include <string> 

std::string input_string = "Hello"; 
std::transform(input_string.begin(), input_string.end(), data.begin(), ::toupper); 

編輯:你的功能應該有簽字後:int convert_char(char c);

+0

所以基本上我用我製作的ConvertString函數替換toupper? – Jaaadeee

+0

是的。請記住,函數應該採用一個'char'作爲參數。 – syntagma

+0

你是什麼意思?我明白什麼字符是,但我不知道我明白你的意思,以一個字符作爲你的論點... – Jaaadeee

相關問題