标准类型库下 #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>