C++语言中的字符串和数组

C-风格字符串一共有三种表示形式:

1 字符数组的表示形式

2 字符串字面值表示

3 被设置成字符串地址的char指针

初始化方式:

数组的初始化

char name[20] = {'z','p','f'};

char name[20] = "zpf";//这是上面写法的简写,剩余的部分都填0


字符串字面值:

编译在内存中开了一块区域,专门用于存放字符串字面值。而用“”括起来的字符串其实表示的是在内存中存放这个字符串的首地址。

如“zpf”,表示的就是内存中存放“zpf”的首地址


char 指针

char * name = "zpf";//一般来说,一般不可以通过name来修改“zpf”的值,因为有可能一个字符串如“zpf”,在文件中多次出现,但只存储了一个副本在内存中。如果修改了其中一个,那会直接影响其余的。一般来说编译器也不允许这么做,即使允许,会出现运行时错误。最好在声明时就把该指针声明为const。


赋值方法char 指针

char * name;// 定义char*指针

name = “zpf”;//因为“zpf”是指针,所以可以这么做。但新版的编译器显示这个方法已经过时了,最好不要再用。


字符数组:

char name[20];

strcpy(name,"zpf");  //该方法会在字符串末尾自动填‘\0’,但如果字符串的字符数超过了name数组的长度,则会发生数组越界的情况

或者: strncpy(name,"zpf",20); //如字符串的长度超过了n,则该方法不会在字符串的末尾自动填‘\0’,如果未超过n,则会在字符串的末尾填‘\0’;

还有strcat,strncat等方法。


注意

1.从文件或者标准输入来读取字符串时要注意不要使用char*(会出现段错误),而应该使用相当大的字符数组来读取。(猜测,在读标准输入时应该是一个字节一个字节读取赋值的)。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值