3

【C语言_21】处理字符串的函数!

 1 year ago
source link: https://blog.51cto.com/u_15420562/5746029
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【C语言_21】处理字符串的函数!

精选 原创

使用以下函数均需要添加头文件#include<string.h>

1.strlen函数

  • 获取字符串的长度
  • 从第一个字符开始直到遇见\0,返回字符串的长度
size_t strlen(const char* str);
//size_t一个整型类型表示字符串的长度
//size_t已有整型变量(unsigned int,unsigned long,unsigned long long)的别名
//const保证不会修改指针指向的字符
#include<stdio.h>
#include<string.h>
int main()
{
char str[]="helloworld";
int l=strlen(str);
printf("%d",l);
return 0;
}
【C语言_21】处理字符串的函数!_strcat函数

2.strcat函数

  • 字符串拼接函数
  • 将源字符串拼接到目标字符串的后面
char* strcat(char* destination,char* source);
#include<stdio.h>
int main()
{
char dest[11]="hello";
char sour[6]="world";
printf("%s\n",dest);
printf("%s\n",sour);
strcat(dest,sour);
printf("%s\n",dest);
printf("%s\n",sour);
return 0;
}
【C语言_21】处理字符串的函数!_strcat函数_02

3.strcpy函数

  • 字符串复制函数
  • 把sour 所指向的字符串复制到dest。 需要注意的是如果目标数组dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。
char* strcpy(char* destination,const char* source);
#include<stdio.h>
int main()
{
char dest[9]="ILOVE";
char sour[4]="YOU";
printf("%s\n",dest);
printf("%s\n",sour);
strcpy(dest,sour);
printf("%s\n",dest);
printf("%s\n",sour);
return 0;
}
【C语言_21】处理字符串的函数!_strcmp函数_03

4.strcmp函数

  • 比较两个字符串,若一致返回0,否则返回其他值。
int strcmp(const char* str1,const char* str2);
#include<stdio.h>
int main()
{
const char* str1="zxcvbn";
const char* str2="zxcvbnm";
const char* str3="zxcvb";
int r=strcmp(str1,str2);
}

5.<string.h>库函数总结

int bcmp(const void *s1, const void *s2, int n)
//比较字符串s1和s2的前n个字节是否相等

void bcopy(const void *src, void *dest, int n)
//将字符串src的前n个字节复制到dest中

void bzero(void *s, int n)
//置字节字符串s的前n个字节为零

void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count)
//由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制

void *memcpy(void *dest, void *src, unsigned int count)
//由src所指内存区域复制count个字节到dest所指内存区域

void *memchr(void *buf, char ch, unsigned count)
//从buf所指内存区域的前count个字节查找字符ch

int memcmp(void *buf1, void *buf2, unsigned int count)
//比较内存区域buf1和buf2的前count个字节

int memicmp(void *buf1, void *buf2, unsigned int count)
//比较内存区域buf1和buf2的前count个字节但不区分字母的大小写

void *memmove(void *dest, const void *src, unsigned int count)
//由src所指内存区域复制count个字节到dest所指内存区域

void *memset(void *buffer, int c, int count)
//把buffer所指内存区域的前count个字节设置成字符c

void setmem(void *buf, unsigned int count, char ch)
//把buf所指内存区域前count个字节设置成字符ch

void movmem(void *src, void *dest, unsigned int count)
//由src所指内存区域复制count个字节到dest所指内存区域

char *strcpy(char *dest,char *src)
//把src所指由NULL结束的字符串复制到dest所指的数组中

char *strcat(char *dest,char *src)
//把src所指字符串添加到dest结尾处(覆盖dest结尾处的’\0’)并添加’\0’

char *strchr(char *s,char c)
//查找字符串s中首次出现字符c的位置

int strcmp(char *s1,char * s2)
//比较字符串s1和s2

int stricmp(char *s1,char * s2)
//比较字符串s1和s2,但不区分字母的大小写

int strcspn(char *s1,char *s2)
//在字符串s1中搜寻s2中所出现的字符

char *strdup(char *s)
//复制字符串s

int strlen(char *s)
//计算字符串s的长度

char *strlwr(char *s)
//将字符串s转换为小写形式

char *strupr(char *s)
//将字符串s转换为大写形式

char *strncat(char *dest,char *src,int n)
//把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的’\0’)并添加’\0’

int strcmp(char *s1,char * s2,int n)
//比较字符串s1和s2的前n个字符

int strnicmp(char *s1,char * s2,int n)
//比较字符串s1和s2的前n个字符但不区分大小写

char *strncpy(char *dest, char *src, int n)
//把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中

char *strpbrk(char *s1, char *s2)
//在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内

char *strrev(char *s)
//把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)

char *strset(char *s, char c)
//把字符串s中的所有字符都设置成字符c

char *strstr(char *haystack, char *needle)
//从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)

char *strtok(char *s, char *delim)
//分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串

int strnicmp(char *s1,char * s2,int n)
//比较字符串s1和s2的前n个字符但不区分大小写

持续更新【C语言】系列!有需要的移步主页​ ​秃头程序媛主页​

  • 1
  • 1收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK