使用C++語言,函數LetterChanges(str)
採用str
參數傳遞並使用以下算法對其進行修改。字符串代碼不工作
將字符串中的每個字母替換爲 字母表中的後面的字母(即c變成d,z變成a)。然後在這個新的字符串(a,e,i,o,u)中大寫每個元音 ,並最終返回這個修改後的 字符串。
#include <iostream>
using namespace std;
string LetterChanges(string str) {
// code goes here
string str2 = "abcdefghijklmnopqrstuvwxyz";
int j;
for (int i = 0; str[i] != '\0'; i++) {
for (j = 0; str2[j] != '\0'; j++) {
if (str[i] == str2[j]) {
str[i] = str2[j + 1];
}
}
}
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == 'a') {
str[i] = 'A';
}
else if (str[i] == 'e') {
str[i] = 'E';
}
else if (str[i] == 'i') {
str[i] = 'I';
}
else if (str[i] == 'o') {
str[i] = 'O';
}
else if (str[i] == 'u') {
str[i] = 'U';
}
}
return str;
}
int main() {
// keep this function call here
cout << LetterChanges(gets(stdin));
return 0;
}
我試圖運行此代碼,但它是不是給的願望輸出請幫助..
這聽起來像你可能需要學習如何使用調試器來逐步通過你的代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。進一步閱讀:[如何調試小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) – NathanOliver
在前兩個For循環我試圖複製字母和在下一個循環嘗試大寫小寫元音。 –
函數'string LetterChanges(string str)'沒有機會修改傳遞給它的字符串(只是它的一個副本)。也許把它改爲'string LetterChanges(string&str)'? – user463035818