C++ 字符数组和字符串


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

                                           
                                          
                          

                                               
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值