首先它们都在string.h里面
1.strcmp
这个函数在string.h里面
其作用是比较两个字符数组的大小
strcmp(a,b)
当a > b 时,返回 正整数
a == b 时,返回 0
a < b 时 ,返回 负整数
如果是两个string类的字符串,则可以直接使用
> < == 进行比较
2.如果不想区分大小写字母,可以使用stricmp函数
3.strcat
strcat(a,b);
这个函数的作用是把b字符串直接粘贴到a字符串的末尾
4.strcpy
strcpy(a,b);
这个函数将a中的内容直接清空然后换成b中的内容
5.strlen
cout << strlen(a);
这个函数将a字符数组的长度返回
6.strstr
char a[ ] = "abcdefg";
char b[ ] = "ef";
char *p = strstr(a,b);
cout << p; //效果为打印 efg
这个函数用于查找某个字符串是否在我们要找到的字符串中间
如果在,就返回待查找字符串在被查询字符串中第一次出现的首元素地址
否则返回NULL
7.strchr
char a[ ] = "find_a_ok";
char ch = 'a';
char * p = strchr(a,ch);
cout << p ;
//运行结果为输出a_ok
#include <iostream>
#include <cstring>
using namespace std;
int main(){
char a[] = "chiiiii";
char b[] = "zebra";
cout << strcmp(a,b) << '\n';
//由于'c' < 'z' 返回了一个负整数-1
strcat(a,b);
cout << a << endl;
//此时将b[]中的字符串zebra直接复制到a[]的末尾
//结果是chiiiiizebra
cout << strlen(b) << endl;
//zebra长度为5,故输出结果为5
strcpy(a,b);
cout << a << endl;
//此时a中的字符被清空然后被b中的字符替代为zebra
//这个地方需要注意的是a的长度应该比b的长度要长,不然容易出错
char a1[] = "ZEBRA";
char a2[] = "zebra";
cout << stricmp(a1,a2) << endl;
//输出表示结果相等的0
return 0;
}
今天还对常用数据结构STL中的queue进行了小结,并做了三道题目,这个就不发博客了
今天还get了一个小技巧:
把一个字符数组转化成字符串的方法:
char a[ ] = "123456";
string str = (a+1);
cout << str;
//输出结果为23456(没有1)
#include <iostream>
#include <string.h>
using namespace std;
int main(){
char a[ ] = "find_a_ok";
char ch = 'b';
char * p = strchr(a,ch);
if(p!= NULL){
cout << p;
}
else{
cout << ch <<" is not here" << endl;
}
return 0;
}
最终输出: b is not here