使用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