遍历字符数组的方法(c++笔记)

1.最简单

    std::string sentence;
    std::getline(std::cin, sentence);


    for (int i = 0; i < sentence.length(); ++i)

2.引用声明

例题

首字母变大写


题目描述

输入一个只包含大小写英文字母和空格的句子,将每个单词的第一个字母改成大写字母。


输入描述

输入一个长度不超过100的英文句子。


输出描述

请输出按照要求改写后的英文句子。


输入样例

i like ACM


输出样例

I Like ACM
#include <iostream>
#include <cctype> // 包含ctype头文件

using namespace std;

int main() {
    string sentence;
    getline(cin, sentence); // 读取整行输入

    // 设置一个标志,表示下一个字母是一个单词的第一个字母
    bool capitalizeNext = true;

    // 遍历输入的每个字符
    for (char& ch : sentence) {
        // 如果字符是字母
        if (isalpha(ch)) {
            // 如果是单词的第一个字母,将其改为大写
            if (capitalizeNext) {
                ch = toupper(ch);
                capitalizeNext = false; // 设置标志为false,表示下一个字母不是一个单词的第一个字母
            } else {
                ch = tolower(ch); // 否则将其改为小写
            }
        } else if (isspace(ch)) {
            capitalizeNext = true; // 如果是空格,设置标志为true,表示下一个字母是一个单词的第一个字母
        }
    }

    // 输出改写后的英文句子
    cout << sentence << endl;

    return 0;
}

char& ch 是一个引用声明,用于在范围for循环中遍历字符串中的每个字符。在这里,ch 是对 sentence 字符串中每个字符的引用。这样声明的好处是,你可以通过 ch 直接修改原始字符串中的字符

具体来说,char& ch 表示 chchar 类型的引用。在每次循环迭代时,ch 引用的是 sentence 中的当前字符。因此,通过修改 ch,你实际上就在修改 sentence 中对应位置的字符。

这使得在循环内部修改字符串的操作更加方便。在此例中,我们通过引用 ch 直接修改了字符串中的每个字符的大小写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值