C++语法基础篇-字符串

字符串是计算机与人类沟通的重要手段

1|01.Ascii码

字符(指英文)在计算机当中是以AscII码存储的范围在-128~127

#include<iostream> #include<cstring> using namespace std; int main(){ for(int i=0;i<128;i++){ printf("%d : %c\n",i,(char)i); //本质上char类型字符在计算机中存储的仍然是int类型 //所以char可以直接进行运算, } return 0; }

需要记住的常用Ascii码:

  • 0~9 对应 48~57
  • A~Z 对应 65~90
  • a~z 对应 97~122

2|02.字符数组

2|12.1 字符数组初始化

/* 字符数组初始化 */ #include<iostream> #include<cstdio> using namespace std; int main(){ char a[]={'a','b','c'}; //普通的初始化 char b[]={'a','b','c','\0'}; // 添加一个表示字符串结尾的字符'\0' char c[]="abc"; //长度为4 char d[5]="song"; //字符串长度为4,字符数组必须开 5个默认还会存'\0' cout<<a<<" "<<endl; cout<<b<<" "<<endl; cout<<c<<" "<<endl; cout<<d<<" "<<endl; //字符数组的输入 char e[100]; scanf("%s",e); //方式一:向字符数组赋值的时候不加取地址符&,因为字符本身就是一个地址 cin>>s; //方式二: fgets(e,10000,stdin) //方式三:因为前两种读入是遇到空格或回车会停止,第三种方式是直接读取一行(包含空格、回车) // 参数一:为那个数组读入,参数二:最多读入的长度,参数三:后面讲 cin.getline(e,1000) //方式四: 读入一行,参数一:目标数组,参数二:最多读入的长度 //为指定的某位置赋值可以 scanf("%s",e+1);//从数组的第二个位置开始赋值 cin>>s+1 //数组的第二个位置开始赋值 String s; getline(cin,s)//String类型,读入一行 //字符数组的输出 printf("%s\n",e); puts(e)//默认存在换行符 return 0; } //字符串就是字符数组加上'\0'结束符

2|22.2 字符数组常用函数

/* 字符数组常用操作 */ #include<iostream> #include<cstdio> #include<cstring> using namespace std; int main(){ char s[100],a[100],c[100]; scanf("%s",s); scanf("%s",a); //求字符串长度 strlen cout<<strlen(s)<<endl; //比较两个字符串 strcmp cout<<strcmp(s,a)<<endl; //按照字典序比较,s>a 返回1,s=a返回0,s<a返回-1 //字符串的复制 strcpy(c,s); //将s字符串赋值给c字符串 cout<<c<<endl; return 0; }

3|03. String 字符串

/* 字符串String,需要引入库#include<string> */ #include<iostream> #include<cstdio> #include<string> using namespace std; int main(){ //初始化string类型字符串 string s1; //定义一个默认的空字符串 string s2 = s1; //s2为s1的副本 string s3="hello"; //s3是字面值为hello的字符串 string s4(10,'c'); //s4是 cccccccccc // 字符串的输入和输出 cin>>s1; //string类型不能用scanf读入,但是可以使用printf输出 cout<<s1<<endl; printf("%s",s1.c_str());//调用c_str()函数,返回的是s1字符数组的首地址 puts(s1.c_str());//puts输出 //读入整行 getline(cin,s1); //常用函数 //size(),返回字符串的长度 s1.size(); //empty(),判断字符串是否为空 s1.empty(); //字符串的比较,跟变量比较的方法类似 (按字典序) if(s1 != s2); //字符串拼接 (连接),同样也可以直接加字符( //默认的=两边只有要string,就全部转化为string进行拼接,字面值串起来) string s5=s3+"absc" ; //输出 helloabsc string s6="abc"+"def";//报错 ,前提是两边都有string类型 //字符串遍历 //方式一: 当作字符数组遍历 string s="hello"; for(int i=0;i<s.size();i++) cout<<s[i]<<endl; //方式二:增强for for(char c : s) cout<<c<<endl; //等价: for(auto c : s) cout<<c<<endl; auto类型自动推导 // 两个函数back():返回字符串的最后一个字符 // pop_back():移除字符串的最后一个字符 }

__EOF__

本文作者宋淇祥
本文链接https://www.cnblogs.com/qxsong/p/15837302.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   爪洼ing  阅读(125)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏