0
#include <cctype> // Character testing and conversion
using std::cin;
using std::cout;
using std::endl;
int main() {
char letter = 0; // Store input in here
cout << endl
<< "Enter a letter: "; // Prompt for the input
cin >> letter; // then read a character
if(std::isupper(letter)) { // Test for uppercase letter
cout << "You entered a capital letter."
<< endl;
cout << "Converting to lowercase we get "
<< static_cast<char>(std::tolower(letter)) << endl;
return 0;
}
if(std::islower(letter)) { // Test for lowercase letter
cout << "You entered a small letter."
<< endl;
cout << "Converting to uppercase we get "
<< static_cast<char>(std::toupper(letter)) << endl;
return 0;
}
cout << "You did not enter a letter." << endl;
return 0;
}
在這個例子中,使用'std ::'if(std::isupper(letter)) {
而不使用'std ::'if(isupper(letter)) {
?有什麼區別?這兩個區別?
我都嘗試和他們返回相同的結果,所以我不知道什麼是使用的效益「的std ::」
沒有std ::,你會從當前範圍調用一個名爲isupper()的函數,如果沒有,從全局命名空間(:: isupper())。編寫std :: isupper()引用命名空間std中的函數名稱isupper()。 – namezero
@namezero不,如果你是愚蠢的,並使用'使用命名空間標準;' –
一些細微的差異。 'std :: isupper()'[here](http://www.cplusplus.com/reference/locale/isupper/)和'isupper()'[here](http://www.cplusplus.com/reference/cctype/isupper /)。 – Jamal