C++中C风格字符串基本概念介绍

C++编程语言作为一款C语言的升级版本,支持C语言中的各种功能,有经验的编程人员可以很轻松的上手这款语言。今天我们就为大家介绍C++中C风格字符串的具体应用,让大家体验一下其中的C语言特点。

C++提供了两种字符串的表示C风格的字符串和标准。 C++引入的string 类类型一般我们建议使用string 类。但实际上在许多程序的情形中我们有必要理解和使用老式的C++中C风格字符串。在第7 章我们会看到一个例子。它处理命令行选项而这些选项被作为C 风格的字符串数组传递给main()函数

C 风格的字符串起源于C 语言并在C++中继续得到支持。实际上在标准C++之前除了第三方字符串库类之外它是惟一一种被支持的字符串。字符串被存储在一个字符数组中一般通过一个char*类型的指针来操纵它标准C 库为操纵C++中C风格字符串提供了一组函数例如:

// 返回字符串的长度  


int strlen( const char* );  


// 比较两个字符串是否相等  


int strcmp( const char*, const char* );  


// 把第二个字符串拷贝到第一个字符串中  


char* strcpy(char*, const char* ); 

标准C 库作为标准的C++的一部分被包含在其中为使用这些函数我们必须包含相关的C 头文件

#include <cstring> 

指向C++中C风格字符串的字符指针总是指向一个相关联的字符数组,即使当我们写一个字符串常量时,如:

const char *st = "The expense of spirit\n"; 

系统在内部也把字符串常量存储在一个字符串数组中,然后st 指向该数组的第一个元素。那么我们怎样以字符串的形式来操纵st 呢?一般地我们用指针的算术运算来遍历C 风格的字符串,每次指针增加1 直到到达终止空字符为止例如:

while ( *st++ ) { ... } 

char*类型的指针被解除引用并且测试指向的字符是true 还是false 。true 值是除了空字符外的任意字符(空字符在判断语句中被莫认为是假),++是增加运算符它使指针对指向数组中的下一个字符。一般来说当我们使用一个指针时在解除指针的引用之前测试它是否指向某个对象是必要的,否则程序很可能会失败例如:

相关推荐