字符串:
字符串长度
字符串包含的字符个数(不是指中文)。
空字符串的长度是0
“”是空字符串常量,没有一个字符,长度是0
“ ”是空格字符串常量,包含1个空格,长度是1
“boy” 的字符串长度是 3
“大宝贝” 的字符串长度不是3 ,是6或9
(在某些编码中,一个汉字占用2个直接,有些编码中占3个字节)
“” 的字符串长度是0(空串)
“ ” 的字符串长度是1(含有一个空格)
字符串常量
“字面型”字符串常量,要求用“”扩起来。
字符串结束符
在C语言中 每个字符串都会有一个字符串结束符’\0’(占一个字节);
表示这个字符串的结尾, 可以不用自己输入编译器自动会加上,需要留一个字节的内存存放
C++根据编译器实际储存可能有字符串结束符,也可能没有.
字符串变量的表示
在C语言中,使用char类型的数组,来存储字符串变量
注:C语言中,没有专用的字符串类型。
//需要标注内存大小,由于过于麻烦所以C++有了string类型.
在C++中,使用std::string类型来表示字符串变量。
字符串的定义;
#include<string>
//C++字符串的头文件
//定义了字符串变量 Friendl,此时是一个空串`
std::string Friendl;
可以使用using namespace std;省略输入std::
#include<iostream>
#include<string>
#include<>
using namespace std;
void definition(void){
//定义了字符串变量 girlFriend1,空串
string girlFriend1;
//把字符串常量"小犹太"拷贝到girlFriend1
girlFriend1="小犹太";
cout<<"girlFriend1="<<girlFriend1<<endl;
string girlFriend2;
//使用已有字符串变量girlFriend1拷贝到girlFriend2
girlFriend2=girlFriend1;
cout<<"girlFriend1="<<girlFriend2<<endl;
//定义了一个字符串变量girlFriend3
//同时把他的值设置为了"朱茵"
//说明:定义变量的同时,设置一个值,一般称为"初始化"
string girlFriend3("朱茵");
cout<<"girlFriend1="<<girlFriend3<<endl;
//定义了一个字符串变量girlFriend4
//同时,使用另一个字符串变量girlFriend3来"初始化"
string girlFriend4(girlFriend3);
string girlFriend5(10,'A');//等效于:sring string girlFriend5("AAAAAAAAAA");
system("pause");
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
以上是5种字符串定义的方法
字符串的使用
string job;
//基本用法
//console output 控制台输出
cout<<"你是做什么工作的呀?"<<endl;
cin>>job;//console input 控制台的输入
cout<<"你做"<<job<<"应该是个挺不错的工作"<<endl;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
有弊端,即不会读取空白字符例如:空格,空格后面的字符会被省略.
连续输入并存入变量
string univercity;
string profession;
cout<<"你是哪个学校毕业的?学什么专业?"<<endl;
//自动跳过空白字符
cin>>univercity>>profession;
cout<<univercity<<"的"<<profession<<"专业不错哦"<<endl;
system("pause");
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
弊端, 两个变量只能跳过一个空格,即需要存入的变量数-1
示例:
超过变量数的字符串,将不会被存入.
连续输入字符串但数量不确定
//连续输入多个字符串,而且输入的字符串个数不确定
//知道输入结束是(ctrl+Z并回车)
//需要使用循环语句
string food;
int number=0;
cout<<"你喜欢吃什么食物?\n";
//使用cin>>输入时,遇到文件结束符(Ctrl+Z)就返回0;
while(cin>>food){
number=number+1; //每输入一个食物数量加1
cout<<"你最喜欢的第"<<number<<"个美食是:"<<food<<endl;
cout<<"你还喜欢吃什么食物?\n";
}
cout<<"你最喜欢的美食有"<<number<<"种"<<endl;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
food 实际保存的是最后输入的内容,前面输入的内容会被覆盖掉
读取一行字符串与计算字符串长度
string addr;
cout<<"请问你从哪里来?"<<endl;
//从标准输入设备(cin),读取一行字符串,保存到字符串变量addr中
//如果用户直接回车,就没有任何数据输入;
//读一行,直到遇到回车符,注意不包括回车符;
getline(cin,addr);
//查看输入是否为空
//如果是空串结果为true(真)否则结果是false(假);
if(addr.empty()){
cout<<"你好像,没有输入呢"<<endl;
}else{
cout<<addr<<"风景好看吧"<<endl;
}
//计算字符串长度
//size()
//length()
cout<<"字符串长度是"<<addr.size()<<endl;
cout<<"字符串长度是"<<addr.length()<<endl;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
字串长度推荐使用length()比较可读形象;