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()。
使用超出下标的将引发不可预知的结果。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 集合框架: 1)特点:存储对象;长度可变;存储对象的类型可不同2)Collection(1)List:有序的;元素...
    Demo_Yang阅读 1,286评论 0 4
  • 1.会说话的人想话说,不会说话的人抢话说; 2.面对选择,分清甜头和代价,是不是真的想要,还是有其他因素影响; 3...
    程艺0428阅读 448评论 0 0
  • ■王红娟 一道彩虹东边现 美丽风景突现 人随潮流向前奔 一路高歌永不停 践行公仆永不忘 一心为民精神传 下叶人多路...
    朝花夕拾杯中酒123阅读 317评论 1 17