【day2】七个常用的c风格字符串操作函数小结

首先它们都在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

猜你喜欢

转载自blog.csdn.net/chenhanxuan1999/article/details/81046902
今日推荐