1: // Created by Frank M. Carrano and Timothy M. Henry. 2: // Copyright (c) 2017 Pearson Education, Hoboken, New Jersey. 4: // Listing C3-5 6: #include <iostream> 7: #include <string> 9: // Encodes the character at index i of the string str. 10: void encodeChar(int i, std::string& str) 11: { 12: int base = static_cast<int>('a'); 13: if (isupper(str[i])) 14: base = int('A'); 15: char newChar = (static_cast<int>(str[i]) — base + 3) % 26 + base; 16: str.replace(i, 1, 1, newChar); // Method replace can throw exception 17: } // end encodeChar 19: // Encodes numChar characters within a string. 20: void encodeString(int numChar, std::string& str) 21: { 22: for (int j = numChar − 1; j >= 0; j––) 23: encodeChar(j, str); 24: } // end encodeString 26: int main() 27: { 28: std::string str1 = "Sarah"; 29: encodeString(99, str1); 30: return 0; 31: } // end main