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

C++ 字符数组和字符串

2015-10-12 17:32 344 查看
标准类型库下 #include<string>下

初始化string对象: string s5=“hello world”;//拷贝初始化

string s6("hello world");//直接初始化

string s7(6,‘c’);// 初始化内容为:cccccc

字符串操作:

getline(is,s); 从is中读取一行赋给s,返回is

s.size();返回s中字符的个数

s.empty();s为空返回true,否则返回false

<span style="font-size:18px;">int main()
{
string s;
cin>>s;
cout<<s<<endl;
return 0;
}

string对象会自动忽略开头的空白(空格,换行,制表符)并从第一个真正的字符开始,直到遇到下一处空白为止。

字符串初始化字符数组:char str[]={"i am happy"};//也可以省略大括号
char str[]="i am happy";   (请注意:字符数组的长度不是10,而是11,因为系统在
字符串后自动加了'\0')

上面初始化与此等价:
char str[]={i',' ','a','m','m','h','a','p','p','y','\0'};
而不是:
char str[]={i',' ','a','m','m','h','a','p','p','y'};

C语言中对字符串常量是按字符数组处理的(而C++不是)。

在C语言中,有两种方法表示和存在字符串。
(1)用字符数组:char str[]="i am happy";
(2)用字符指针:char *str="i am happy";(注意:有人认为str是一个字符串变量,
而实际在C语言里,将字符串按字符数组处理,在内存中开辟一个字符数组来存放,
程序中讲数组首地址赋给str)

对于字符指针变量和字符数组表示字符串的讨论:

(1)字符数组由若干元素组成,每个元素存放一个字符,而字符指针变量存放的是字符串/字符数组的首地址。
(2)赋值方式:对于字符数组,只能对各个数组元素赋值,而不能整体赋值。
比如:char str[14];  str="i love home";这样对数组进行赋值是不对的。
(但在字符数组初始化时可以,即char str[14]="i love home";)

而对于字符指针变量,采用下面方式赋值:char *a; a="i love China";
或直接 char *a="i love China";
</span>

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: