您的位置:首页 > 编程语言 > C语言/C++

c/c++ 字符数组、字符指针和字符串类型总结帖

2017-12-18 11:46 585 查看
一、字符数组

C++中字符数组用char str[]可以用来表示一个字符串。

(1) 数组的大小和字符串的长度。

数组的大小一定要大于字符串的长度,因为系统会自动补上一个’\0’作为字符串的结束标志。当然对于未初始化的也补’\0’.

#include <iostream>
#include <string>

using namespace std;

int main()
{
char str[11] = "I am happy";   //  系统会自动补上'\0'空字符作为结束标志,,未有初始化的也补'\0'
//char str[10] = "I am happy";    // 出错  系统自动补上'\0' 此时字符数组长度不够
//char str[13] = "I am happy";    //  后面未有初始化的也补上'\0' 为 I am happy\0\0\0
if(str[10] == '\0')
{
cout << "hello world!!" << endl;
}

cin >> str;      //  输入输出
cout << str << endl;
return 0;
}


二、字符指针

char *str="hello world!";


说到底,str是一个字符指针,这句仅仅是将“hello world!”的第一个字符的地址赋予str。

cout<<*(str+4)<<endl;//这句输出的是  o
cout<<*str<<endl;//这句输出   h
cout<<str<<endl;//这句输出hello world!


数据类型是字符指针(str)的,则从所指地方开始输出直到’\0’结束,数据类型是字符的(*str)则只输出单个字符

char* c和char c[]的区别在于前者是变量,后者是常量。

三、c++提供的标准库string

C++之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用= 进行赋值操作,== 进行比较,+ 做串联。我们尽可以把它看成是C++的基本数据类型。

首先,为了在我们的程序中使用string类型,我们必须包含头文件。如下:

#include <string>//注意这里不是string.h string.h是C字符串头文件


详解:

http://blog.csdn.net/twphoenix/article/details/50628457

http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐