第6章 字符串(上)——C风格字符串

6.1 C-strings(C 风格字符串)

C风格字符串: 字符数组是元素为字符型的数组,字符串是以空字符'\0' 作为数组最后一个元素的字符数组。

如果指定了数组的大小,而字符串的长度又小于数组大小,那么这个数组其余的元素都将被初始化为'\0'。

为了在一个字符串中包含一个双引号,必须在这个双引号的前面加上一个反斜杠(\)

6.2 C-string input and output(C 风格字符串的输入和输出)

!!!字符数组的大小必须比字符串中的字符数多1

getline( )

为了允许输入空白字符(空格、回车、Tab),可以使用函数getline( )。

换行符'\n'称为定界符,表示从输入流cin读取字符到数组的结束。

'\n' 被称为定界符,若定界符被省略,则将其假定为'\n'。 自动在其末尾添加'\0'。

6.3 Accessing individual characters of a C-string(访问C风格字符串中的单个字符)

可以通过下标来访问C 风格字符串的每个字符。

6.4 C-string functions(C 风格字符串函数)

C++继承了C风格字符串函数库,使用要写明头文件

#include<cstring>                                                                                                                                                   

(1)找到c字符串的长度 strlen(str):返回一个C 风格字符串str中字符的个数,不包含'\0'

(2)复制C风格字符串strcpy( destination, source ) :source 字符串中的内容被复制到destination 字符串中。

Remark:

  source字符串必须以'\0' 结束;( getline()默认定界符为‘\n’ )

  destination 字符串有足够的空间来存储要复制的字符串内容。

(3)字符串拼接strcat( str1, str2 ): 把字符串str2 拼接到字符串str1 的后面。

Remark:

  str1要有足够的空间来存储拼接后的字符串。

(4)比较C 风格字符串strcmp( str1, str2 ) :比较两个以'\0' 为结束的字符串str1和str2的大小。

    函数返回值:负数 str1 < str2;零str1 = str2;正数istr1 > str2.

(5)其他:

strncat( str1, str2, n )

将C风格字符串str2的前n个字符添加到C风格字符串str1的末尾。

strncmp( str1, str2, n )

与函数 strcmp(str1, str2)类似,区别仅在于,strncmp( str1, str2, n )最多比较n个字符。

strncpy( str1, str2, n )

将字符串str2的前n个字符复制到字符串str1中。

要注意:这些都是继承的C语言的函数,str1的定义形式应该是char str[size];而不能是string str;

Converting numeric C-strings to numbers(数值C风格字符串向数值的转换)

数字C风格字符串的存储: ASCII 表示 “123” 整数值的存储: 二进制 123

atoi() : C风格字符串到整数(遇到小数点时就会停止转换)

atol() : C风格字符串到长整数

atof() : C风格字符串到双精度浮点(接受小数点,因为它可以作为小数的一部分。)

Remark:

忽略字符间的空格 在遇到第一个不能作为一个数值部分的字符时,停止转换。

函数参考(小结)

 

posted @ 2022-05-24 21:38  杏花疏影  阅读(143)  评论(0)    收藏  举报