1.6 字符串的比较
1. char類字符串比較, 我們不使用關系操作符,(比如>,<,=,!=),?而使用strcmp函數. 如果我們要知道字符數組word中的字符串是不是mate,不能用這個語句:word=="mate", 因為數組名是數組的地址, 字符串常量"mate"返回此字符串的地址, 那這句話的意思是比較這兩個地址是否相同. 我們使用strcmp函數來比較字符串, 該函數接受兩個字符串地址作為參數, 這意味著參數可以是指針,字符串常量或者字符數組名, 因為這些的表現形式都是地址. 例如strcmp(A,B), 如果A=B,那么strcmp函數返回0, 如果字符串A的第一個字符按字符順序在B的第一個字符前面, 則strcmp返回一個負數值, 反之如果在之后, 則返回一個正數值.
??????? strcmp(A,B)=0, 如果A=B
??????? strcmp(A,B)<0, 如果A的字符順序在B之前
??????? strcmp(A,B)>0, 如果A的字符順序在B之后
2. 由于字符串是通過結尾的空字符定義的, 而不是由其所在數組的長度定義的, 這意味著兩個字符串即使被存儲在長度不同的數組中, 也可能是相同的,例如下面的big和little字符數組如果用strcmp比較是相等的.
??????? char big[80]="happy";??//5個字符加空字符/0
????????char?little[6]="happy";? //5個字符加空字符/0
3. 我們可以用關系操作符來比較字符, 因為字符實際上是整型, 因此可以用來比較字符. 例如下面的代碼輸出字母表
??????? for(char ch='a';ch<='z';ch++)
?????????????cout<<ch;
4. string類字符串比較.可以用關系操作符進行比較(比如>,<,=,!=), 因為string類設計時重載了這些關系操作符, 所以我們能夠使用這些關系操作符比較字符串.
5. 代碼集合
#include <iostream>
#include <cstring> //含義strcmp函數
#include <string> //包含string類
using namespace std;int main()
{
char類字符串比較
//char類字符串比較, 我們不使用關系操作符,(比如>,<,=,!=), 而使用strcmp函數 //strcmp(A,B)=0, 如果A=B//strcmp(A,B)<0, 如果A的字符順序在B之前//strcmp(A,B)>0, 如果A的字符順序在B之后char word[5]="late";if(strcmp(word,"mate")==0) cout<<"word is "<<"mate"<<endl;else if(strcmp(word,"mate")<0)cout<<"word is in front of mate"<<endl;elsecout<<"word is after mate"<<endl;//兩個字符串即使被存儲在長度不同的數組中, 也可能是相同的char big[80]="happy";char little[6]="happy";if(strcmp(big,little)==0)cout<<"big is equal to little"<<endl; //我們可以用關系操作符來比較字符, 因為字符實際上是整型, 因此可以用來比較字符//例如下面的代碼輸出字母表 for(char ch='a';ch<='z';ch++)cout<<ch<<" ";cout<<endl;//字符串"?ate",改變?,直到與"mate"一樣char word2[5]="?ate";for(char ch='a';strcmp(word2,"mate")!=0;ch++) {cout<<word2<<endl;word2[0]=ch;} cout<<"After loop ends, word2 is "<<word<<endl;//string類字符串的比較//
//string類字符串比較.可以用關系操作符進行比較(比如>,<,=,!=), 因為string類
//設計時重載了這些關系操作符, 所以我們能夠使用這些關系操作符比較字符串. //還是上面的例子 string word3="?ate"; //這里是string類型字符串 for(char ch='a';word3!="mate";ch++) {cout<<word3<<endl;word3[0]=ch;} cout<<"After loop ends, word3 is "<<word<<endl;system("pause");return 0;
}
總結
以上是生活随笔為你收集整理的1.6 字符串的比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真正的编程高手-----激励计算机专业的
- 下一篇: 程序编译出错,缺少类型说明符;语法错误