C语言字符串基本函数
1.字符串长度函数 strlen()
头文件:string.h
函数原型:
size_t strlen(const char* str);
功能:strlen()
函数从字符串的开头位置依次向后计数,直到遇见\0
,然后返回计时器的值。最终统计的字符串长度不包括\0
。
参数 str
表示要求长度的字符串。
返回值:字符串 str
的长度。
示例如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[7]="hello!";
printf("%d",strlen(a));
}
结果如下:
2.字符串复制函数 strcpy() strncpy()
2.1.strcpy()
头文件:string.h
语法/原型:
char* strcpy(char* strDestination, const char* strSource);
参数说明:
strDestination
:目的字符串。
strSource
:源字符串。
strcpy()
会把 strSource
指向的字符串复制到 strDestination
。
必须保证 strDestination
足够大,能够容纳下 strSource
,否则会导致溢出错误。
返回值:目的字符串,也即 strDestination
。
示例如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[7]="hello!";
char b[8]="world!";
strcpy(a,b);
printf("%s",a);
}
结果如下:
2.2 strncpy()
头文件:string.h
语法/原型:
char *strncpy(char *dest, char *src, int n);
参数说明:
dest
:目的字符串。
src
:源字符串。
n
:从左到右取src的n个字符
strncpy()
会把 src
指向的字符串中的n
个字符复制到 dest
。
示例如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[7]="hello!";
char b[8]="world!";
strncpy(a,b,2);
printf("%s",a);
}
结果如下:
3.字符串比较函数 strcmp()
功能:C语言 strcmp() 函数用于对两个字符串进行比较(区分大小写)。
头文件:string.h
函数原型:
int strcmp(const char* stri1,const char* str2);
参数 str1
和 str2
是参与比较的两个字符串。
strcmp()
会根据 ASCII
编码依次比较 str1
和 str2
的每一个字符,直到出现不到的字符,或者到达字符串末尾(遇见\0
)。
返回值:
- 如果返回值 < 0,则表示 str1 小于 str2。
- 如果返回值 > 0,则表示 str2 小于 str1。
- 如果返回值 = 0,则表示 str1 等于 str2。
示例如下:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[7]="hello!";
char str2[8]="world!";
char str3[8]="hello!";
printf("%d\n",strcmp(str1,str2));
printf("%d\n",strcmp(str2,str1));
printf("%d",strcmp(str1,str3));
}
结果如下:
4.字符串取子串 strstr()
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
头文件:string.h
函数原型:extern char *strstr(char *str1, char *str2);
返回值:返回该位置的指针,如找不到,返回空指针。
示例如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[8]="world";
char b[10]=".jpg";
char c[10]=".jpg";
char *d,*e;
d = strstr(b,a);
e = strstr(b,c);
printf("%s",d);
printf("\n");
printf("%s",e);
return 0;
}
结果如下:
5.大小写转换 strlwr() strupr()
5.1 strlwr()
头文件:string.h
功能:strlwr()
用于将字符串中的字符转换为小写
函数原型:
char *strlwr(char *str);
返回值:返回转换后的小写字符串,其实就是将str返回。
示例如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[18]="HELLO WORLD!";
strlwr(a);
printf("%s",a);
return 0;
}
结果如下:
5.2 strupr()
头文件:string.h
功能:strupr()
用于将字符串中的字符转换为大写
函数原型:
char *strupr(char *str);
返回值:返回转换后的大写字符串,其实就是将str返回。
示例如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[18]="HELLO WORLD!";
strupr(a);
printf("%s",a);
return 0;
}
结果如下: