>[info]# 字符串变量
是一种新的数据类型,可以用来定义变量。
## **头文件**
string.h //C语言中的头文件
cstring //C++中的头文件,相当于C中的string.h
string //C++中的头文件,包含字符串类。
## **定义与引用**
### **定义**
```
string str1; //定义str1这个变量
string str2="China" //定义str2这个变量的同时,给它赋值
```
与普通变量一样,字符串对象也要先定义后使用.
### **赋值**
```
string string1,string2; //定义
string1=”Canada”; //赋值
string2=string1; //赋值
```
```
char str1[5],str2[5]; //定义字符数组
str1="Hello!"; /*error,字符串常量结尾有‘\0’,将字符串常量赋给字符串变量时,只存放了字符,并 没有加上'\0' */
str2=str1; //error
```
```
string word="Then"; //定义并初始化
word[2]='a'; //修改后word的值为Then
```
### **运算**
- 字符串复制:用"="
- 字符串连接:用”+“
- 字符串比较:直接用关系运算符 "==",">=”,"<=","!=",">","<"
## **字符串数组**
```
string str[5]; //定义一个含五个字符串的数组
str[5]={"zhang","li","fun","wang","tan"}; //给数组赋值
```
## **例子**
```
/* 字符串运算 */
#include <iostream>
#include <string>
using namespace std;
int main( )
{
string string1,string2,string3,temp;
cout<<″please input three strings:″; //这是对用户输入的提示
cin>>string1>>string2>>string3; //输入3个字符串
if(string2>string3)
{
temp=string2;
string2=string3;
string3=temp;
} //使串2≤串3
if(string1<=string2)
cout<<string1<<″ ″<<string2
<<″ ″<<string3<<endl; //如果串1≤串2,则串1≤串2≤串3
else if(string1<=string3)
cout<<string2<<″ ″<<string1
<<″ ″<<string3<<endl; //如果串1>串2,且串1≤串3,则串2<串1≤串3
else cout<<string2<<″ ″
<<string3<<″ ″<<string1<<endl; //如果串1>串2,且串1>串3,则串2<串3<串1
}
```
```
#include <iostream>
#include <string>
using namespace std;
string name[50],num[50]; //定义两个字符串数组,分别存放姓名和学号
int n; //n是实际的学生数
int main( )
{
void input_data( ); //函数声明
void search(string find_name); //函数声明
string find_name; //定义字符串变量’find_name是要找的学生
cout<<″please input number of this class:″; //输入提示:请输入本班学生的人数
cin>>n; //输入学生数
input_data( );//调用input_data函数,输入学生数据
cout<<″please input name you want find:″; //输入提示: 请输入你要找的学生名
cin>>find_name; //输入要找的学生的姓名
search(find_name); //调用search函数,寻找该学生姓名
return 0;
}
void input_data( ) //函数首部
{
int i;
for (i=0;i<n;i++)
{
cout<<″input name and NO. of student ″
<<i+1<<″:″; //输入提示
cin>>name[i]>>num[i];
} //输入n个学生的姓名和学号
}
void search(string find_name) //函数首部
{
int i;
bool flag=false;
for(i=0;i<n;i++)
if(name[i]==find_name) //如果要找的姓名与本班某一学生姓名相同
{
cout<<name[i]
<<″ has been found, his number is ″
<<num[i]<<endl; //输出姓名与学号
flag=true;
break;
}
if(flag==false)
cout<<″can′t find this name″; //如找不到,输出“找不到”的信息
}
```
- 介绍
- 编程设计语言
- 第一章 对C++的初步认识
- 1.2 最简单的C++程序
- 1.3 C++对C的补充
- 1.3.1 return
- 1.3.2 输入输出流
- 1.3.3 putchar 和 getchar
- 1.3.4 用const定义常变量
- 1.3.5 函数原型声明
- 1.3.6 内置函数
- 1.3.7 函数重载
- 1.3.8 函数模板
- 1.3.9 有默认值的参数
- 1.3.10 作用域
- 1.3.11 const修饰指针
- 1.3.12 引用
- 1.3.13 生命期
- 1.3.14 变量
- 1.3.15 字符串变量
- 第二章 类与对象
- 2.2 类的声明和对象的定义
- 2.3 类的成员函数
- 第三章 关于类和对象的进一步讨论
- 3.1 构造函数
- 3.1.1 对象的初始化
- 3.1.2 构造函数
- 3.2 析构函数
- 3.3调用析构函数和构造函数的顺序
- 3.4 对象数组
- 3.5 对象指针
- 3.6 共享数据的保护
- 3.7 对象的建立与释放
- 3.8 对象的赋值与复制
- 3.9 静态成员
- 3.10 友元
- 3.11 类模板
- 第四章 运算符重载
- 数据类型转换
- 运算符重载
- 重载流插入运算符和流提取运算符
- 第五章 继承与派生
- 继承与派生
- 第六章 多态性与虚函数
- 多态性
- 虚函数
- 纯虚函数与抽象类