>[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 類模板
- 第四章 運算符重載
- 數據類型轉換
- 運算符重載
- 重載流插入運算符和流提取運算符
- 第五章 繼承與派生
- 繼承與派生
- 第六章 多態性與虛函數
- 多態性
- 虛函數
- 純虛函數與抽象類