C/C++字符串类型的用法整理笔记

前言

字符串类型,即string类型,因为使用方便,不必担心内存问题,越界问题等等,还有在不太确定即将存入的字符串长度的时候使用是非常好的。本片中,将会对string类型的字符串和char类型的字符串对比使用讲解,作为随笔笔记,记录常用的用法,同时也会随着见识的增长随时更新

 

举栗子

string 类型字符串在使用的时候需要加上头文件#include<string>,而char类型的字符串数组在使用的时候往往要加上头文件#include<cstring>才能够使用。下面对比介绍string类型和char类型字符串的用法

(接下来的例子给变量命名我都用的是str1,str2…)


声明:

string str1,str2     char str1[MAXSIZE],str2[MAXSIZE]  //假定要定义的char类型字符串数组的大小为MAXSIZE

 

比较:>,==,<,>=,<=等

       String类型:str1==str2;str1>=str2;str1<=str2 就不一一列举了,可以看出,string类型字符串比较是非常方便的,直接就像int类型那样直接比就可以了(当然比法是不一样的)

       Char类型:strcmp(str1,str2); 有返回值的,str1<str2 返回负数,str1==str2返回为0,str1>str2返回正数。某真心感觉很麻烦,每次比较都要用函数,当然也可以进行运算符重载直接像string类型那样比较,如果不嫌麻烦的话。

 

复制拷贝:

将str2中内容复制到str1中

string类型:str1=str2        char类型:strcpy(str1,str2);

string类型变量在定义的时候还可以拷贝构造函数,如string str1(str2);

 

连接:

将str2中内容连接到str1后头

String 类型:str1+=str2    char类型:strcat(str1,str2);

 

统计字符个数(字符串长度):

统计字符串中字符的个数:

String类型:str1.length();  str1.size();返回的值都是str1的长度

Char 类型:strlen(str1); 返回的值是str1的长度

 

清空字符串变量中所有数据:

String类型:str1..~string();

              或者:str1=””;

 

将char类型字符串转换成string类型:

char str1=”***”;

string str2(str1);

 

将string类型转换成char类型:

strcpy(str2,str1.c_str());

前边的str2是char类型的字符串,后边str1是string类型的。注意转换千万别越界

string中的某一个字符是可以直接保存到char类型字符中的,例如

string str=”123”

如ch=str[1];

那么输出ch打印出来的是2

字符串中的某一字符转换成int类型数字:

int num=str[i]-‘0’;

 

字符串类型与整数类型互相转换:

字符串转换成整数:

用atoi()函数,C语言中头文件是#include<stdlib.h>(C++中是#include<cstdlib>)

用法:atoi只能转char *类型的,如果是string类型的,需先转成char类型

int num=atoi(str);

 

整数转换成字符串:

Itoa()函数,将整数转换成char类型

itoa(num,str, radix);

num是int类型数字,str是最终转换成char的结果,radix是用多少进制保存,如2、8、10、16进制等

 

字符串中查找子串:

find()函数:

字符串详细内容见大神博客:http://blog.csdn.net/laobai1015/article/details/62426137

基本用法

int key=find(str1,str2);

其中str1、str2都是string类型,函数的意思是在str1中查找str2第一次出现的位置并返回这个值,如果不存在则返回-1

 

strstr()函数:

char *str3=strstr(str1,str2);

str1,str2均为char*类型,函数的意思是在str1中查找str2,返回第一次出现str2的地址,如果没有找到则返回空

例如str1=”My name is”;    str2=”name”;

那么返回的str3为“name is”;

string类型中,字符串字串的截取:


substr()函数,用于string类型

string str;

str.substr(startnum, len);

其中 startnum 是起始字符的序号,len是从起始字符开始截取的字符串长度

那么,若要截取str中序号m到n间(其中不包括n)的子字符串则为

str.substr(m, n-m);

 

strtok()函数,用于char类型

char *str=strtok(str1,str2);

将字符串str1沿着str2切割,返回的是char*

关于字符串类型切割的,要想深入研究还可以搜搜其他大神的

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 闫学灿老师的蓝桥杯C语言课程笔记是一份非常实用和全面的学习资料。在这份笔记中,他以蓝桥杯C语言竞赛为出发点,系统地介绍了C语言的基本知识、编程技巧和解题思路。 首先,这份笔记对C语言的基础知识进行了详细的讲解。从数据类型、运算符、控制结构、数组到函数,每个知识点都有清晰的定义和示例。这使得初学者能够迅速上手,了解C语言的基本特性和语法规则。 其次,笔记中还涉及了各种常用的C语言编程技巧。比如,如何进行输入输出、如何进行字符串处理、如何进行文件操作等等。这些技巧是实际编程中经常用到的,通过学习这些技巧,可以提高编程效率和代码质量。 另外,在笔记的后半部分,闫学灿老师还分享了他在蓝桥杯C语言竞赛中的解题思路和经验。这对于想要参加蓝桥杯的学生来说,无疑是非常有价值的。他详细讲解了一些比较经典的题目,以及如何从题目中找到思路和解决方案。 总的来说,闫学灿老师的蓝桥杯C语言课程笔记是一份非常实用和全面的学习资料。不仅适合蓝桥杯竞赛的学生,也适合其他对C语言感兴趣的学习者。通过学习这份笔记,可以提高自己的C语言编程能力,并为今后的编程学习和工作打下坚实的基础。 ### 回答2: 闫学灿是一位知名的编程教育家,他在蓝桥杯和C语言方面有着丰富的教学经验和深厚的专业知识。他的课程笔记以蓝桥杯C语言题目为主线,介绍了C语言的基础知识、高级应用以及解题技巧等内容。 在蓝桥杯C语言竞赛中,学生们通常需要使用C语言编写程序来解决一系列问题。闫学灿的课程笔记通过对大量题目的剖析和解析,帮助学生理解问题的本质,掌握解题的思路和方法。他的讲解通俗易懂,注重实例演示,让学生能够更好地理解和掌握。 课程笔记中,闫学灿详细介绍了C语言的基础语法、控制结构、数组、指针等重要知识点,并通过大量编程实例来巩固学生的学习成果。他注重培养学生的实际动手能力,通过编程实践来提高学生的编程水平和解题能力。 此外,闫学灿的课程笔记还包括了一些高级应用,如字符串处理、递归、动态内存分配等,以及一些重要的算法和数据结构,如排序、查找等。通过这些内容的学习,学生可以更全面地掌握C语言的使用和应用。 总的来说,闫学灿的蓝桥杯C语言课程笔记全面系统地介绍了C语言的基础知识和应用技巧,通过丰富的编程实例和解题思路的讲解,帮助学生在蓝桥杯竞赛中取得更好的成绩,并提高他们的编程水平和解决问题的能力。这样的课程材料对于C语言爱好者和想要参加蓝桥杯竞赛的学生来说都是非常有价值的参考资料。 ### 回答3: 蓝桥杯C语言是由蓝桥杯组织举办的一项程序设计竞赛。参赛者需要使用C语言编写程序解决一系列算法和编程题目。 闫学灿(Y总)是一位知名程序员,他开设了一系列C语言课程笔记,内容丰富全面,对于初学者和有一定基础的编程爱好者都非常有帮助。 在闫学灿的C语言课程笔记中,他详细讲解了C语言的基础知识,包括变量、数据类型、运算符、流程控制等等。他还介绍了C语言的一些特性和编程技巧,例如指针、结构体、文件操作等。通过学习这些内容,可以帮助我们更好地理解和运用C语言。 闫学灿的C语言课程笔记还包含了许多实例和练习题,通过实践的方式帮助我们巩固所学的知识。他还提供了一些实际项目的源码和解决方案,让我们可以实际操作和应用所学的知识。 总的来说,蓝桥杯C语言闫学灿(Y总课程笔记)是一门非常优秀的课程,对于想要学习C语言并参加蓝桥杯竞赛的学生来说是很好的学习资料。通过学习这门课程,我们可以系统地学习和掌握C语言的知识,并通过实践提高我们的编程能力和解决问题的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值