c++ primer 阅读 day6

3.2.3 处理string对象中的字符

遍历string中的每个字符

#include<iostream>

int main()
{
    /*
    std::string str("some string");
    //每行输出 str中的一个字符
    for(auto c : str)
        std::cout<<c<<std::endl;
    */

    /*
    std::string s("Hello World!!!");
    // punct_cnt 的类型和s.size的返回类型一样
    decltype(s.size()) punct_cnt = 0;
    for(auto c:s)
        if(ispunct(c))
            ++punct_cnt;
        std::cout<<punct_cnt
            <<" punctuation characters in "<< s <<std::endl;

      */

      std::string s("some string");
      for(decltype(s.size()) index = 0;
        index != s.size() && !isspace(s[index]);++index)
            s[index] = toupper(s[index]);
        std::cout<<s<<std::endl;

      std::string s1("hello world!!!");
      //转换为大写形式
      for(auto &c:s1)      //对于s中的每个字符(注意:c是引用)
        c = toupper(c);     //c是一个引用,因此赋值语句将改变s中字符的值
      std::cout<<s1<<std::endl;
    return 0;
}

note:
string 对象的下标必须大于等于0而小于s.size()。
使用超出下标的将引发不可预知的结果。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 121,816评论 17 134
  • 集合框架: 1)特点:存储对象;长度可变;存储对象的类型可不同2)Collection(1)List:有序的;元素...
    Demo_Yang阅读 738评论 0 4
  • 1.会说话的人想话说,不会说话的人抢话说; 2.面对选择,分清甜头和代价,是不是真的想要,还是有其他因素影响; 3...
    PEWorld阅读 279评论 0 0
  • ■王红娟 一道彩虹东边现 美丽风景突现 人随潮流向前奔 一路高歌永不停 践行公仆永不忘 一心为民精神传 下叶人多路...
    朝花夕拾杯中酒123阅读 213评论 1 17
  • 说爱我说爱我 难道你不再爱我 我的泪滴下来 你从来不曾看过 为什么为什么 爱情让人变沉重 没有人告诉我 原来...
    6季宝贝阅读 166评论 0 0