2015-10-15 3 views
-1

Я изучаю C++, и я должен написать функцию (ConvertString), которая изменяет входную строку input_string на , заменяет каждый алфавитный символ символом, который является положением mod_int вниз по алфавиту. Например, еслиКак написать функцию ConvertString

input_string: Hello
mod_int: 4
mod_string: Lipps // L = H + 4, я = е + 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); 

EDIT: Ваша функция должна иметь нижеследующая подпись: int convert_char(char c);.

+0

так что я заменяю toupper функцией ConvertString, которую я создал? – Jaaadeee

+0

Да. Помните, что функция должна принимать один символ 'char' в качестве аргумента. – syntagma

+0

Что вы подразумеваете под этим? Я понимаю, что такое char, но я не уверен, что получаю то, что вы подразумеваете, принимая один символ в качестве аргумента ... – Jaaadeee

Смежные вопросы