string 整理

基本操作

1;定义,初始化,复制

//1:直接赋值
string a="efewrg";
//2:先定义再赋值
string a;
a="erfwergwe";
//4:用另一个string赋值:
string a="erver";
string b=a;

string c=“fert",d=c;//利用逗号左结合性--->
//3:把char数组型的字符串赋给string变量
char a[30]="werfwer";
string str=a;


//5:strign数组:
string str_arr[10]={"werfwerf","erfwerf"};
cout<<str_arr[0];

2:输入输出:

string str;
cin>>str;

cout<<str;
string a="erfw";
string *b=&a;
cout<<*b;

cin>>*b;
cout<<*b;

3:运算:
1 用<、<=、==、>=、> 运算符进行比较
2 用+,+=将两个 string 对象相加
3 用+,+=将一个字符串常量"xxxx"和 string 对象相加
4 用+,+=将一个字符数组char a[]和 string 对象相加,相当于进行字符串连接strcat。

string a="efer",b="ewfwew";
//1
if(a>b)cout<<1;
//2
cout<<(a+b);
//3:
a+="werfwer";
cout<<a;
//4:
char ch[20]="eerferf";
cout<<(a+ch);
char cha[20]={'a'};
cout<<(a+cha);

比较大小的具体步骤:(其实< string > 的+和<string.h>的strcat一样)
字符串与字符比较原理其实都是比较单个字符的ASCII码值。
如果单纯比较长度,直接调用类似于strlen()之类的函数就可以,加以比较**即可. 如果比较字符串的大小,则比较的是字符的ASCII编码的大小.你搜索一下ASCII码表就可以得知每一个ASCII字符的大小.
在比较字符串时,设置一个计数器,从零开始,一直循环到最短的那个字符结束,一位一位进行比较,

1.如果 字符串1的第n位的ASCII码值 等于 字符串2的第n位的ASCII码值 则 继续比较下一位
2.如果 字符串1的第n位的ASCII码值 大于 字符串2的第n位的ASCII码值 则 输出结果:1,表示字符串1 > 字符串2;

3.如果 字符串1的第n位的ASCII码值 小于 字符串2的第n位的ASCII码值 则 输出结果:-1 表示字符串1 < 字符串2;

4.如果 每一位的ASCII码值都相等,而且长度相同, 则 输出结果:0 表示字符串1 == 字符串2;

5.如果 字符串1是字符串2的前m位,例如 abcd 与abcdef 比较, 则 字符串1<字符串2. 原因是,到第5位时,字符串1的ASCII值是0,而字符串2的ASCII值为’e’,即十进制的101,当然是字符串2大了. 具体到 cds和lesoqd 从第一位开始,'c’和’l’比较,当然是’c’ < 'l’了,所以,“cds” < “lesoqd”

4:string 类的成员函数:
1 .size(); 返回int有几个字符
2 .length(); 返回int有几个字符
3 .substr(起始下标,要截取字串的长度); 返回一个临时string=要截取的字串 (cpy出来,而不是删去原串的一部分)

	string a="erfw";
	cout<<a.size()<<endl;
	
	cout<<a.length()<<endl;
	
	cout<<a.substr(0,2)<<endl;

学习来源:
string基本操作

易混淆操作:

谁对?:

string str[10];
str={"dfqer"};			//incorrect

string a;
a="rfwr";				//correct

谁对?:

string a="wefvw";
cout<<*(a+1)<<endl;			//incorrect

cout<<a[1]<<endl;			//correct

谁对?:

char a[10]="ewerer",b[10]="werfww";
strcat(a,b);							//超限

strcpy(a,b);							//corret

谁对?:

char a[80];
cin>>a;

string str;
cin>>str;

string strin[2];
for(int i=0;i<2;i++)
{
	cin>>strin[i];			//都对
}

string编程习题

例5-8
从键盘获得3个字符串,存入字符串数组中,并实现如下操作:
(1)找出最大字符串;
(2)将三个字符串连接起来放入第一个字符串中并输出;

在这里插入代码片

学习来源:
string基本操作

在这里插入代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值