第十一章 字符串与字符串函数

来源:互联网 发布:淘宝卖家如何寄快递 编辑:程序博客网 时间:2024/06/06 18:06

第十一章 字符串与字符串函数

字符串的声明与使用方式

const char *pStr1  = "hello world";const char pStr2[] = "hello world";

上例中是两种典型的字符串的声明方式.这里使用const的原因是”hello world”本身是常量,
存储在内存中的固定区域.与此同时,也就是有可能上例中的两个”hello world”实际上在内
存区域只有一个备份,那么如果不采用const方式的话若通过pStr1对一个进行修改很有可能(
注意此处只是可能,和具体的实现与运行环境有关)导致第二个pStr2指向的相同区域也被修
改.为了避免这种情况,应该约定,凡是字符串商量的情况下都应该使用const来进行声明.

字符串的结尾

字符串的定义:字符串是以空字符(\0)结尾的char数组.因此我们在进行拷贝,赋值等操作室
一定要意识到字符串的实际长度要比它本身包含的字符长度多一个字节.因此在对字符串进
行循环便利操作时一定要注意下标的范围.

string.h中的工具函数

标准C库提供了一整套有关于字符串操作的相关操作库函数,具体见c primer plus 307页的
总结说明

main函数的参数

main函数一般包含两个餐厨,int argc 与 char **argv. 其中argc代表参数的数量(包含命
令参数本身),argv为具体的字符串参数(包含命令参数本身),argv本身为指针的指针,所以具
体的参数为argv[0] argv[1] argv[2]…..等.

字符串转换为数字的方式

与上面提到的main参数相关,当从命令行获取了相应的参数时,参数是以字符串的形式进行存
储的,例如”121”.但是我们实际上可能是需要使用具体的数值,这时候就需要将字符串转换为
例如int类型.标准C提供了一套相应的转换函数:
atoi() : 字符串 -> 整数(int)
atof() : 字符串 -> 浮点数(float)
atol() : 字符串 -> 长整型数(long)
itoa() : 整数(int) -> 字符串 此函数并非标准C库中的函数
ftoa() : 浮点数(float) -> 字符串 此函数并非标准C库中的函数

字符串转义

C中规定了一些转义字符,代表有特殊意义,具体如下:
\a \b \f \n \r \t \v \ \’ \” \? \0
这里比较重要的是”,如果想在字符串中显示双引号,由于C中字符串是被双引号包括的,因此
必须对他转义,如” Hello “My” Name”这个字符串打印时的结果就是Hello “My” Name,若不
加转义,则会出现编译错误.(对于其他无法正确打印的特殊字符也可以尝试转义.

字符串比较的规则

以字符是ASCII值确定,比较规则是,从第一个字符开始,顺次向后直到出现不同的字符为
止,然后以第一个不同的字符的ASCII值确定,例如上面的”abc”和”aabdfg”,由于第一个字
符相同,都是’a’所以看下一个字符,第二个字符,一个是’b’,一个是‘a’,由于b的ASCII值
比a的ASCII值大,所以,这二个字符串的比较结果是”abc”>”aabdfg”

0 0
原创粉丝点击