字符串处理函数
与printf不同,这些函数不在之前熟悉的头文件stdio.h中。而是在字符串专用的头文件string.h中。
1.获取字符串长度strlen
strlen函数可以获取字符数组中的字符串长度。它从第一个字符开始计数,直到遇到'\0'为止,并返回累计的长度。
size_t strlen(constchar*str);
输入:一个指向字符串首地址的指针。
输出:size_t类型的整型,用于表示字符串长度。
使用const有两重意义:
1.保证函数内部不会修改指针所指向的字符。2.提示使用者,传给该函数的字符串不会被修改。
size_t并不是一个新的关键词,它是已有整型变量的别名。它有可能是unsigned int别名。也有可能是unsigned long或unsigned longlong的别名。取决于编译器怎样实现。
同时,sizeof关键词返回的结果也是size_t类型的
#include<stdio.h>
#include<string.h>
int main()
{char str[20]="Hello";
size_t size=sizeof(str);
printf("sizeof=%d\n",size);
size_t len=strlen(str);
printf("len=%d\n",len);
return 0;}
结果为sizeof=20
len=5
2.字符串拼接函数strcat
strcat函数原型如下:char*strcat(char*destination, const char*source);
输入:char*destination拼接目标字符串首地址
constchar*source拼接源目标首地址
输出:
char*destination拼接完成的目标字符串首地址
#include<stdio.h>
#include<string.h>
int main()
{char dest[9]="I Love";
char src[4]="You";
strcat(dest,src);//将后面的字符串拼接到前面
printf("%s\n",src);
printf("%s\n",dest);
return 0;}
结果为:You
I Love You
格外注意目标字符串后必须还有足够空间。如果目标字符串所在的数组仅有8个元素,这样拼接后,多出来的字符将造成数组越界。
dest[9]字符数组有9个元素,而拼接后ILoveYou\0也有9个字符。所以,这样是没问题的。
3.字符串复制函数strcpy
字符串复制函数strcpy,可以将源字符串的内容,复制到目标字符数组当中。
例如,源字符串为You,目标字符串为ILove\0。字符串复制函数会将从首元素开始覆盖目标字符串。使得目标字符串变为You\0。
#include<stdio.h>
#include<string.h>
int main()
{char dest[9]="ILove";
char src[4]="You";
strcpy(dest,src);
printf("%s\n",src);
printf("%s\n",dest);
return 0;}
结果为You
You
如同字符串拼接函数一样,字符串复制函数也需要目标字符串所在的数组拥有足够空间,才能正确完成复制。
4.字符串比较函数strcmp
字符串比较函数strcmp,用于比较两个字符串,如果两个字符串一致,则返回0。
#include<stdio.h>
#include<string.h>
int main()
{const char*str1="abcedfg";
constchar*str2="abcedfgh";
constchar*str3="abcedf";
//自己比自己,相等
int ret=strcmp(str1,str1);
printf("%d\n",ret);
//str1与str2比较,小比大
ret=strcmp(str1,str2);
printf("%d\n",ret);
//str1与str3比较,大比小
ret=strcmp(str1,str3);
printf("%d\n",ret);
return 0;}
结果为0
-1
1
标签:函数,18,C语言,char,printf,字符串,include,处理函数,size From: https://www.cnblogs.com/mmwl/p/16727670.html