c++中的char
这个是从c传承下来的,如果可行,还是建议用string,会省劲很多。
首先当使用char*或者char[]来表示字符串时,加上string.h头文件来调用库函数,或者#include <iostream>本身也带着
1、char
char只表示一个字符,若重复赋值,则或者会覆盖前者:
char ch='qwqewqe';
cout<<ch<<endl;
输出:e
因为char只有一个字符,后者会覆盖前者。
2、char * src表示字符串
char *src="qwqewqe";
cout<<src<<endl;
这里的src为指针,指向的就是该字符串的首地址开始表示的内容 。可以使用src[i]获取第i的字符;也可以使用src+i代表第i个字符,可以使用src获取整个串,可以使用&src获取存放该字符串首地址。
这里如果想使用printf输出,只能使用src,不能加&
3、char src[]表示字符串
char src[]="qwertyu";
使用src[i]获取第i个字符:
cout<<src[0]<<" "<<src[1]<<" "<<src[2]<<endl;
使用src获取整个字符串:
cout<< src<<endl;
使用&src获取首地址:
cout<< &src<<endl;
在使用 printf时,加不加&都是可以的
4.
char dst[]="fsdfsd";//这里的字符串作为局部变量,都在栈区,可以被改变,字符串中的单个字符可被改变
char *src="fsdfsd";//这里的字符串作为常量,放在常量区(不能改变),而dst放在栈区,当改变字符串的值时程序会崩溃,如果改的时候就直接改掉整个字符串
例如 执行:dst[0]='1'; 没有问题
但是执行 src[0]='1'; 程序就会崩溃!!
因此若调用函数对字符串进行修改时,应该定义成dst[]的形式,而不能是*dst的形式!!
也就是说,char*其实是是const char 类型,而char[]其实是char const类型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)