c/c++ string
string类的定义、操作。
#include<iostream>
#include<string>
using namespace std;
int main()
{
// 4 declare
string s1; //default
string s2( s1 );
string s3( "hello" );
string s4( 9, 's' );
//read and write
string s_1, s_2;
cin>>s_1>>s_2; //igore blank in head, find blank in tail will end;
cout<<s_1<<endl;
//读入未知数目的文本
string word;
while( cin>>word ) //read until end-of -file
{
cout<<word<<endl;
if( word == "exit" )
{
cout<<"exit success"<<endl;
break;
}
}
//用getline读取整行文本,getline不会保存换行符
string line;
while( getline( cin, line ) )
{
cout<<line<<endl;
if( line == "exit" )
{
cout<<"exit success"<<endl;
break;
}
}
//string.size() and string.empty
string str_size;
cout<<"test string size"<<endl;
cin>>str_size;
if( str_size.empty() )
cout<<"string is empty"<<endl;
else
cout<<"string is not empty"<<endl;
//配套类型string::size_type实现与及其无关;int 型变量容易出错,不便移植;unsigned 可用于string::size_type可用的地方。
//关系操作符==、+=、<、<=、>、>=,使用字典顺序排序
string big = "big", small = "small", substr = "hello",phrase = "hello world"; //substr 小于 phrase
//string赋值,有效率上的问题
string str1, str2 = "value assignment come with efficent problem";
str1 = str2;
//string对象相加
str2 = "c plus plus";
str1 = "hell";
str2 += str1;
//和字符串字面值的连接,必须用string类型作为左值
str1 = str2 + "hello world" + "!!!";
//下标操作string单个字符
for( string::size_type ix = 0; ix != str1.size(); ix++ )
{
cout<< str1[ix] <<endl;
str1[ix] = '*';
}
//下标值计算
str1[2*1] = 'a';
cout<<str1<<endl<<"下标计算"<<endl;
//string中单个字符处理
cout<<"单个字符的处理"<<endl;
if( ispunct(str1[2]) )
cout<<"str1[2] 是一个标点"<<endl;
string s;
cout<<s[0]<<endl; //越界
return 0;
}
操作单个字符时使用cctype定义的函数,满足条件则为true:
isalnum(c) 是字母或数字
isalpha(c) 是字母
iscntrl(c) 是控制字符
isdigit(c) 是数字
isgraph(c) 不是空格,可打印
islower(c) 小写字母
isprint(c) 可打印字符
ispunct(c) 标点符号
isspace(c) 空白字符
isupper(c) 大写字母
isxdigit(c) 十六进制数
tolower(c) 是大写字母时返回小写字母,否则返回c
toupper(c) 是小写字母时返回大写字母,否则返回c
c/c++ string的更多相关文章
- 透过WinDBG的视角看String
摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的 ...
- JavaScript String对象
本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...
- ElasticSearch 5学习(9)——映射和分析(string类型废弃)
在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...
- [C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密
string 与 String,大 S 与小 S 之间没有什么不可言说的秘密 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string ...
- js报错: Uncaught RangeError: Invalid string length
在ajax请求后得到的json数据,遍历的时候chrome控制台报这个错误:Uncaught RangeError: Invalid string length,在stackoverflow查找答案时 ...
- c# 字符串连接使用“+”和string.format格式化两种方式
参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...
- 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed
之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...
- JavaScript中String对象的方法介绍
1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...
- 在多线程编程中lock(string){...}隐藏的机关
常见误用场景:在订单支付环节中,为了防止用户不小心多次点击支付按钮而导致的订单重复支付问题,我们用 lock(订单号) 来保证对该订单的操作同时只允许一个线程执行. 这样的想法很好,至少比 lock( ...
- BCL中String.Join的实现
在开发中,有时候会遇到需要把一个List对象中的某个字段用一个分隔符拼成一个字符串的情况.比如在SQL语句的in条件中,我们通常需要把List<int>这样的对象转换为“1,2,3”这样的 ...
随机推荐
- PRINCE2随笔
首先要说的是,我这篇体会是针对一定的背景的,不能算是一种通用的管理方式,只能是我自己的经验总结,能给大家平常的管理提供一点思路,我就很满足了. 先说说背景,我所在公司做的是大型桌面应用软件,简单点说就 ...
- Junit的使用
Junit是用于编写单元测试的框架.对于已经写好的函数,可以使用Junit生成单元测试代码. 自己的环境是:Linux Java环境是:JDK1.7 IDE:Eclipse Java EE IDE f ...
- iOS-绘图
0 CGContextRef context = UIGraphicsGetCurrentCont ext(); 设置上下文 1 CGContextMoveToPoint 开始画线 2 CGCon ...
- json 除去转义字符以及查看json错误
$param=stripslashes($_POST['param']); try{ //$param包含了文档指定的信息,...这里保存您的快递信息,$param的格式与订阅时指定的格式一致 $ar ...
- BZOJ 1041: [HAOI2008]圆上的整点
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3621 Solved: 1605[Submit][Sta ...
- django用户认证
利用django自带认证功能实现用户登录认证. views.py # Create your views here. from django.shortcuts import render_to_re ...
- nginx-1.8.0 rpm包制作
1.安装rpm-build # yum install rpm-build 2.创建制作RPM包目录 # cat /root/.rpmmacros %_topdir /root/rpmbuild %_ ...
- Swift—调用系统相册和相机
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...
- 使用vlc播放器做rtsp流媒体服务器
可参考: 使用vlc播放器播放rtsp视频 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器做rts ...
- Newtonsoft.Json高级用法
http://blog.csdn.net/chengmodelong/article/details/46680143