一,strlen和sizeof
strlen一般用来求字符串长度,而sizeof是求这一段储存空间的大小。它们的区别在于strlen不计算空白符的大小,且遇到\0就会停止工作。
例如
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
printf("%ld\n",strlen("hello baby"));//结果为10;
printf("%ld\n",strlen("hello\0baby"));//结果为5;
printf("%ld\n",sizeof("hello baby"));//结果为11;
printf("%ld\n",sizeof("hello\0baby"));//结果为11;
return 0;
}
二,strcat和strncat(返回值是指针)
strcat和strncat都用于将两个字符串连接起来。
strcat(char *a,char *b)//把串b直接连接到a后边,
strncat(char *a,char *b ,int n)//把字符串b前边的n个字符直接连接到a后边
三,strcmp和strncmp(区分大小写比较,不区分大小写则用strcasecmp和strncasecmp)
strcmp和strncmp都用来比较两个字符串,两个字符串自左向右逐个字符相比(按ASCII值大小比较);若两个字符串为str1,str2:
strcmp:
strcmp(str1,str2);
//若str1=str2,则返回零;
若str1 > str2,则返回正数;
若str1< str2,则返回负数。
strncmp:
strncmp(str1,str2,size);
//如果字符串s1与s2的前size个字符相同,函数返回值为0;
在前size字节比较过程中,如果出现str1[n]与str2[n]不等,则依次比较str1和str2的前n位,
设i(i< n)为两字符串首次的不同位,则返回一个ASCLL值(str1[i]-str2[i])
四, strstr,strchr和strnchr
strstr是在字符串中查找匹配的字符串
strstr(str1,str2);
//找不到返回null,找到了返回str2在str1中的地址;
strchr和strrchr都是在字符串中查找匹配的字符
strchr(str1,单个字符);
//找到了返回第一个的地址,找不到返回null;
strrchr(str1,单个字符);
//找到了返回最后一个匹配字符的地址,找不到返回null;
五,strcpy和strcmpy(返回值是指针)
strcpy和strcmpy用于字符串拷贝
strcpy:
char *strcpy(char *dest, const char *src) ;
strncpy:
char *strncpy(char *dest, const char *src, size_t n);
六,sprintf和snprintf
sprintf和snprintf用于格式化输出字符串到buffer;
sprintf:
intsprintf(char *string,char *format,arg_list);
snprintf:
int snprintf(char *str, size_t size, const char *format, ...);