C中对字符串的定义为:以空字符(\0)结尾的char数组。(C++Primer中文版中叫做字符串字面值):如"A","C++"等,指位于一对引号中的任何字符。其实是双引号里的字符加上编译器的自动提供的结束字符,作为一个字符串存储在内存中。字符串常量属于静态存储。:数组中的元素的类型都是字符型时,这个数组就是字符数组。字符数组的初始化:char_charArray[10]={'I','','a','m','','h','a','p','p','y'};或者char_charArray[]={'I','','a','m','','h','a','p','p','y'};:字符串数组是一个特殊的字符数组,只是在在char字符类型的背后多了个一个字符串结束标志'\0'.如:char_char[]={'I','','a','m','','h','a','p','p','y'};--字符型数组。char_str[]={'I','','a','m','','h','a','p','p','y','\0'};—字符串数组当然也是字符数组。字符串数组初始化可以char_str[]={"Iamhappy"};char_str[]="Iamhappy!";(省略花括号)。char_str[15]="Iamhappy";其实数组大小为15,"Iamhappy"只用10个字符,后五个字符被自动初始化为0即'0'。:如char*str="Iamhappy";这里没有定义数组,定义了一个字符指针变量str,并用字符串常量初始化。即将字符串第一个元素的地址赋给str。数组和指针形式的不同:数组形式_str[],_str是个地址常量,而指针形式*str的str是一个地址变量。程序开始为str提供一个存储位置,来存储字符串的位置(字符串的第一个字符),所以str的值是可以改变的。以上是C和C++中都支持的字符串形式,C++中叫做c风格的字符串。C++中的字符串变量:C++又在标准库中定义了string类型,string类型是可变的字符串类型。在C++中字符串的字面值就是c风格的字符串。C++程序中提倡使用string类型的字符串。使用string类型的字符串需要包含头文件#include<iostream>usingstd::string;初始化为(string为一个类)stringS1;stringS2(S1);将S2初始化为S1的副本。stringS3("value");相当于S3="value";stringS4(n,'c');S4初始化为n个'c'的副本。string类型的字符串和字符串字面值不是一个同一种类。还有就是写那种像C++风格又像C风格的程序时包含头文件是容易出错。对C风格的字符串的操作函数的头文件为<>
c字符串和c string 来自淘豆网m.daumloan.com转载请标明出处.