我无法弄清楚此代码中指针的错误位置。但是,我收到代码没有指针功能的错误。
#include <iostream>
using namespace std;
char uppercase (char ch) {
if ((ch >= 'a') && (ch <= 'z')) {
return ch - 'a' + 'A' ;
cout << "Your capital letter is " << ch << endl;
} else {
return ch;
cout << "Your original letter is: " << ch << endl;
}
}
int main(int& ch){
cout << "Please enter a lowercase letter between a to z: ";
cin >> ch;
char uppercase;
char outChar;
char inChar;
outChar = uppercase(inChar);
system("pause");
}
答案 0 :(得分:4)
int main(char&)
严格遵守 。它可能由实现提供,但我不知道任何平台这样做。在托管实施中,请改为使用int main()
或int main(int argc, char** argv)
。
在1 st 注释的基础上,将函数中的ch
声明为局部变量并使用char
而非int
:
char ch;
或完全删除它,如4 th 点所述。
您在未初始化的变量(uppercase
)上调用inChar
,导致未定义的行为,因为uppercase
从中读取。移除ch
变量,然后使用cin
上的inChar
代替。
您可能应该在return ch;
函数中使用cout
语句交换uppercase
。 cout
- 语句是死代码,这意味着它永远不会被执行,因为函数会事先返回。
答案 1 :(得分:0)
你有一个与函数名相同的局部变量:uppercase 摆脱局部变量 还将主要功能修复为以下签名。
int main(int argc, char *argv[])
{
....
}
ex:
#include <iostream>
using namespace std;
char uppercase (char ch) {
if ((ch >= 'a') && (ch <= 'z')) {
return ch - 'a' + 'A' ;
}
else {
return ch;
}
}
int main(int argc, char* argv[]){
cout << "Please enter a lowercase letter between a to z: ";
char inChar;
cin >> inChar;
char outChar = uppercase(inChar);
return 0;
}
答案 2 :(得分:0)
我的代码中可以看到很多问题:
希望这有帮助。