第十章 字符串处理函数
10.1 字符串操作函数
以str开头为字符串处理函数 默认遇到’\0’结束操作
10.1.1 测量字符串的长度 strlen
#include <string.h>
size_t strlen(const char *s);
s指 需要测量字符串的元首素地址
char str1[128] = "hello";
strlen(str1);//5
char str2[128] = "he\0llo";
strlen(str2);//2
10.1.2 字符串拷贝函数 strcpy
#include <string.h>
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);
dest:目的空间地址
src: 原字符串的首元素地址
char dst[128] = "";
char src[] = "hello\0world";
strcpy(dst,src);
char dst1[] = ""; //dst1数组只有1字节 当src1拷贝到dst1中 造成溢出(内存污染)
char src1[] = "hello\0world";
strcpy(dst,src);
cout<<dst1<<endl;//hello world(污染内存)
10.1.3 字符串追加函数 strcat
char dst[128] = "hello";
char src[] = "world";
strcat(dst,src);
cout<<dst<<endl;//helloworld
10.1.4 字符串比较strcmp
#include <string.h>
int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
返回值:
>0 s1字符串 > s2字符串
<0 s1字符串 < s2字符串
==0 s1字符串 == s2字符串
char str1[128] = "";
char str2[128] = "";
cout<<"请输入第一个字符串:";
cin>>str1;
cout<<"请输入第二个字符串:";
cin>>str2;
if(strcmp(str1,str2)>0)
{
cout<<str1<<"大于"<<str2<<endl;
}
else if(strcmp(str1,str2)<0)
{
cout<<str1<<"小于"<<str2<<endl;
}
else if(strcmp(str1,str2)==0)
{
cout<<str1<<"等于"<<str2<<endl;
}