当前位置: 首页 > news >正文

day6 cpp:c中处理字符串,c++string

0.c中处理字符串

c的操作:

//字符串检查函数(非修改式操作)

//返回str的长度,不包括null结束符

size_t strlen(const char *str);

//比较lhs和rhs是否相同,=返回0,>返回正数,<返回负数

int strcmp(const char *lhs,const char *rhs);

int strncmp(const char *lhs,const char *rhs,size_t count);

//在str中查找首次出现ch字符的位置,查找不到,返回空指针

char *strchr(const char *str,int ch);

//在str中查找首次出现子串substr的位置,查找不到,返回空指针

char *strstr(const char *str,const char *substr);

//字符串控制函数(修改式操作)

char *strcpy(char *dest,const char *src);

char *strncpy(char *dest,const char *src,size_t count);//是src的前count个字符

char *strcat(char *dest,const char *src);

char *strncat(char *dest,const char *src,size_t count)

在c中,程序员需要考虑字符数组大小的开辟,结尾空字符的处理,很不方便:

char str[]="hello";

char *pstr="world";

//求取字符串长度

printf("%d\n",strlen(str));


//字符串拼接,不能直接strcat(str,pstr),因为str的内存空间已经固定,没有多余空间存放pstr

char *ptmp=(char *)malloc(strlen(str)+strlen(pstr)+1);

strcpy(ptmp,str);

strcat(ptmp,pstr);

printf("%s\n",ptmp);


//查找子串

char *p1=strstr(ptmp,"world");

free(ptmp);

1.c++字符串

把string当成c++的内置数据类型,放在和int,double等内置类型同等位置上

string对象的构造

    string str1;//无参构造生成一个空字符串string str2("hello");//通过c风格字符串构造一个string对象,相当于string str2 = "hello";string str3("world", 3);//worstring str4(str3);//拷贝构造函数,相当于string str4 = str3;string str5(str2,1, 3);//ell---从下标1开始,接收3个字符string str6(10, 'a');//生成一个string对象,该对象包含10个a//迭代器方式创建string对象char arr[] = "hello";//迭代器目前可以理解为广义的指针//利用迭代器构造string对象时//需要传入首跌代器和尾迭代器//使用两个迭代器之间(左闭右开)范围的元素作为string对象的内容string str7(arr, arr + 5);//hell [0,5) 

 

//迭代器不等同于指针//begin函数返回string对象的首迭代器//把string视为是存放char型元素的容器//容器类型名称::iterator 就是这种容器的迭代器类型string::iterator it = str1.begin();//auto可以自动推导类型auto it2 = str1.end();string str2(it, it2);//hellostring str3(it, --it2);//hell

string常用操作 

相关文章:

  • CSP信奥赛C++常用系统函数汇总
  • Linux 下 DMA 内存映射浅析
  • Effective Java 第三版 第二三章总结
  • 【JVM】Java虚拟机(三)——类加载与类加载器
  • [创业之路-410]:经济学 - 国富论的核心思想和观点,以及对创业者的启发
  • Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
  • 2025-06-02-IP 地址规划及案例分析
  • OD 算法题 B卷【反转每对括号间的子串】
  • Secs/Gem第八讲(基于secs4net项目的ChatGpt介绍)
  • 剑指offer19_链表中倒数第k个节点
  • Netty集群搭建
  • python打卡day48
  • PandasAI使用
  • 深入解析 Pandas 核心数据结构:Series 与 DataFrame
  • 重读《人件》Peopleware -(15)Ⅱ 办公环境 Ⅷ 撑伞之步:构建理想办公环境(下)
  • 【C++系列】智能指针自定义析构
  • 6.5 自学测试 数据库基础 Day5
  • C++11 右值引用
  • 第十八章 归档与备份
  • python打卡训练营打卡记录day48
  • wordpress themes 目录/湖南百度seo
  • 网站建设的需求分析/线上免费推广平台都有哪些
  • 做网站做的好的公司有哪些/网络营销制度课完整版
  • 扬中网站建设如何/广告招商
  • 衡水seo_衡水网站建设-燕丰收/免费seo免费培训
  • 网站我优化/郑州seo技术培训班