字符串和字符串常数

一、字符串和字符串常量

1.字符串是一串以空字符'\0'结尾的char类型值。字符串可以存放在字符数组中,也可以用字符串常量表示。在字符串常量中,空符(除了空字符)是被包含在双引号中的。编译器为它加上空字符。例如存储"joy"时有四个字符:j、o、y、和\0。

2.字符串常量是指位于一对双引号中的任何字符。可以用来初始化字符数组。数组大小至少应该比字符串长度大1。这样才能存放空字符。

3.字符数组名和其它数组名一样也是数组首元素的地址。因此下面的式子对数字m1成立:

m1 == &m1[0],*m1 == 'L',and *(m1+1) == m1[1] == 'i'

4.增量运算符只能用在变量名前,而不能用在常量前。例如:

char heart[] = "I love Tillie!";

char *head = "I love Millie!";

主要的区别在于数组名heart是个常量,而指针head是个变量。所以heart++是错误的。

5.数组的初始化是从静态存储区把一个字符串复制给数组,而指针初始化只是复制字符串的地址。

静态存储:指如果在一个函数中试用字符串常量,即使是多次调用了这个函数,该字符串在程序的整个运行过程中只存储一份。

初始化一个指向字符串文字的指针时最好使用const修饰符避免产生错误:

const char *p1 = "Klingon";

6.声明数组时用char *mytal[LIM];比char mytal_2[LIM][LINLIM]更节省存储空间,如图:


二、字符串输入

1.对函数声明时最好明确指出数组的大小:

char name[81];

2.gets()函数

gets()读取换行符之前的所有字符但是不包括换行符。

gets()函数如果在一切顺利的情况下返回的是读入字符串的地址,如果出错或者遇到文件结尾就会返回一个空(或0)地址。利用while(gets(name) != NULL)这样的指令可以检查是否到了文件的结尾,并读取一个值。

3.puts()函数

puts()函数显示字符串时自动在其后添加一个换行符。所以gets()函数和puts()函数相结合使用。

4.函数利用指向字符串第一个字符的指针来标识它所作用的字符串。其传递的是第一个字符的地址。可以根据标志结束的空字符来确定字符串的结束。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值