c++ - 大写字符,topper 是如何工作的?

标签 c++ arrays character capitalization capitalize

我需要使用一个字符数组,并根据需要将数组中的字符大写和小写。我正在查看礼帽及其示例,但我对它的工作原理感到困惑。从我写的cplusplus.com上给出的例子来看

int main(){
    int i = 0;
    char str[] = "This is a test.";
    while(str[i]){
        putchar(toupper(str[i]));
        i++;
    }
    for(int i = 0; i < 15; i++){
        cout << str[i];
    }
}

关于这件事,有两件事我不明白。第一个是没有底部的 cout,程序打印出 THIS IS A TEST。 putchar 是否打印到屏幕上? (示例中未解释 putchar 的使用)。但我的第二个更重要的问题是为什么底部的 cout 仍然打印出 This is a test.?它不会改变 str[] 中的字符吗?有没有其他方法我应该这样做(记住我需要使用字符数组)?

最佳答案

是的,putchar() 将一个字符打印到程序的标准输出。这就是它的目的。它是大写输出的来源。

程序底部的 cout 打印原始字符串,因为您从未修改过它。 toupper() 函数不会——实际上不能——修改它的参数。相反,它返回大写的字符。

关于c++ - 大写字符,topper 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433009/

相关文章:

javascript - 选择数组中开始日期和结束日期之间的数据

r - pmatch 以错误的方式返回字符匹配

c++ - C++中如何获取特定区间内的随机数

c - 用 C 验证条形码

arrays - 如何检查对象数组中对象属性的相等性。 swift

c - 在 C 中使用 getchar() 对输入进行消音

ruby - 如何判断 Ruby 字符串以什么开头?

c++ - 无法解决有关此代码的难题

c++ - PGI 编译器中的 CUDA 工具包缺少 link.stub

可以通过 SSH 构建的 C++ IDE