一.字符数组、字符串、字符串变量(类)、字符串数组
1.字符数组:存放字符数据的数组。
1)定义和赋值:
a)利用字符串:char c[ ]={"I am happy"};
b)逐一赋值:char c[ ]= {'I',' ','a','m',' ','h','a','p','p','y'} //系统根据初值个数自动确定数组长度
强调:<1>不能对数组整体赋值:char c[10]; c={'I',' ','a','m',' ','h','a','p','p','y'} ; (错误!)
char a[10];char b[10]; a=b;(错误!)[区:字符串变量]
<2>只能分别对数组的元素赋值:char c[10];c[0]='a';......(正确!)
2)输入输出:用的是字符数组名!(区别:只有c++的字符数组能直接输入、输出数组名!其它的都需要for循环!)
char a[10]; //这就必须要有数组长度了!!
cin>>a;
cout<
2.字符串:两端用双撇号(“”),系统在自动加‘ ’
1)字符数组
char c[ ]={"I am happy"}; //数组的长度是11,不是10!!
等价于char c[ ]= {'I',' ','a','m','h','a','p','p','y',' '};
2)字符串变量
3)字符串处理函数:只用于字符数组(也可用于字符串变量,但字符串变量不需要,因为其可以直接用简单运算符判断),加头文件#include
char a[10]="I am"; char b[6]="happy";
a)stract(a,b);把b连接在a后,连接后的字符串放在a中。
b)strcpy(a,b);把b复制到a中。
c)strcmp(a,b);比较a、b两个字符串。
a)——c)的使用:直接写就行了。例如:stract(a,b);
d)strlen(a):测出字符串实际长度,不包含‘ ’。
4)利用指针判断遍历到字符串结尾的方法:*p!=' '
string str;
cin>>str;
char *p=&str[0];
for(;*p!=' ';){......}
注意:不允许指针同整数比较!(例:p 3.字符串变量:string是在c++库内已声明的类。(sizeof(string)是类的长度,即各数据成员的长度之和) 加头文件#include 1)定义和赋值: a)定义无[],无{},但可以通过下标修改 string str ="I am happy"; str[2] = 'a'; //可用字符数组的下标进行修改 b)可以整体赋值!(区:字符数组) <1> string str;str="I am happy"; <2> string str1,str2;str1=str2; 2)输入与输出:同字符数组 string str; cin>>str; cout< 3)运算(区:字符串处理函数) string str1 ="I am"; string str1="happy"; a)连接 用加号‘+’ str1 = str1 + str2; b)复制 用等号'=' str1=str2; c)比较 用关系运算符(==、!=、<=、>=、<、>) d)求字符串的长度 <1> 法一:length()成员 int len = str1.length(); <2> 法二:size()成员 int len = str1.size(); 4)指向字符串变量的指针 string str ="I am happy"; char *p = &str[0]; //指针是char型,&和【0】必须都有!!(因为字符串名字不代表首地址!) 4.字符串数组:其每一个元素存放一个字符串。(区:字符数组) 1)定义和赋值: <1> string str[5] = {"zhang","li","sun","wang"}; <2> string str[5];str[5]={"zhang","li","sun","wang"}; 每个字符串元素长度可以各不相同,每一个元素的值只包含字符串本身的字符 而 不包含' '。 2)输入与输出:都要用for循环,str[i] <1>输入: string str[5] ; for(int i=0;i<5;i++) cin>>str[i]; <2>输出: string str[5] = {"zhang","li","sun","wang"}; for(int i=0;i<5;i++) cout>>str[i]; 注意: 定义时没有赋初值,也没有用cin输入数据,要用str[i].resize()分配空间。(因为字符串数组不知道每一个字符串的具体长度,如果不用str[i].resize()分配空间,那么它不知道什么时候结束) string str[5]; str[0].resize(2); str[0][0]='a'; str[0][1]='b'; 3)修改其中一个字符串的一个元素的值:使用二维数组直接修改 二.输入三个字符串按从小到大输出(指针方法) 注意:排序的交换,第一步的temp都在前面 1)法一:运用字符数组 注意:输出的时候有顺序了!!p1,p2,p3 2)法二:运用字符串 注意:在让str2 三.自己写一个函数实现两个字符串的比较 四.用指向指针的指针的方法将n个整数排序并输出 五.字符串输出连续数组#include
#include
#include
#include
#include



