C语言string.h中常用函数详解

string.h头文件中十一个重要的函数,笔记已经上传至gitee string.h头文件中重要的十一个库函数 笔记指路:函数 不仅仅有本文的函数,还持续更新其他函数类型的解释 文章目录string.h头文件中重要的十一个库函数一、strcat 字符串追加1. strncat二、strstr 字符串查找三、strlen 求字符串长度四、strcpy 字符串拷贝1. strncpy五、strcmp 字符串比较1. strncmp六、strtok 字符串划分七、memcpy 内存拷贝八、memmove 内存移动九、memcmp 内存比较十、memset 内存重置十一、 阅读详情

常量和类型

名称 说明
NULL表示空指针常量的宏,即表示一个不指向任何有效内存单元地址的指针常量。
size_t无符号整型,被用于sizeof运算符的返回值类型。
函数
名称 说明
void *memcpy(void *dest, const void *src, size_t n);将n字节长的内容从一个内存地址复制到另一个地址;如果两个地址存在重叠,则最终行为未定义
void *memmove(void *dest, const void *src, size_t n);将n字节长的内容从一个内存地址复制到另一个地址;与memcpy不同的是它可以正确作用于两个存在重叠的地址
void *memchr(const void *s, char c, size_t n);在从s开始的n个字节内查找c第一次出现的地址并返回,若未找到则返回NULL
int memcmp(const void *s1, const void *s2, size_t n);对从两个内存地址开始的n个字符进行比较
void *memset(void *, int, size_t);用某种字节内容覆写一段内存空间
char *strcat(char *dest, const char *src);在字符串dest之后连接上src
char *strncat(char *dest, const char *src, size_t n);在字符串dest之后连接上src,最多增加n个字符
char *strchr(const char *, int);从字符串头开始查找某字符出现的位置
char *strrchr(const char *, int);从字符串尾开始查找某字符出现的位置
int strcmp(const char *, const char *);基于字典顺序比较两个字符串
int strncmp(const char *, const char *, size_t);基于字典顺序比较两个字符串,最多比较n个字节
int strcoll(const char *, const char *);基于当前区域设置的字符顺序比较两个字符串
char *strcpy(char *toHere, const char *fromHere);将一个字符串从一个位置复制到另一个位置
char *strncpy(char *toHere, const char *fromHere, size_t);将一个字符串从一个位置复制到另一个位置,最多复制n个字节
char *strerror(int);返回错误码对应的解释字符串,参见errno.h(非线程安全函数)
size_t strlen(const char *);返回一个字符串的长度
size_t strspn(const char *s, const char *strCharSet);从字符串s的起始处开始,寻找第一个不出现在strCharSet中的字符,返回其位置索引值
size_t strcspn(const char *s, const char *strCharSet);从字符串s的起始处开始,寻找第一个出现在strCharSet中的字符,返回其位置索引值
char *strpbrk(const char *s, const char *strCharSet);在字符串s中查找strCharSet中任意字符第一次出现的位置的指针值
char *strstr(const char *haystack, const char *needle);在字符串haystack中查找字符串needle第一次出现的位置,heystack的长度必须长于needle
char *strtok(char *, const char *);将一个字符串分隔成一系列字符串;此函数非线程安全,且不可重入
size_t strxfrm(char *dest, const char *src, size_t n);根据当前locale转换一个字符串为strcmp使用的内部格式
ISO C扩展函数
名称 说明 标准
void *memccpy(void *dest, const void *src, int c, size_t n

);

在两块不重叠的内存地址间复制内容,直至复制了n字节或遇到内容为c的字节UNIX 98?
void *mempcpy(void *dest, const void *src, size_t n);memcpy的变体,返回写入的最后一个字节的地址指针GNU
errno_t strcat_s(char *s1, size_t s1max, const char *s2);strcat的变体,带边界检查ISO/IEC WDTR 24731
errno_t strcpy_s(char *s1, size_t s1max, const char *s2);strcpy的变体,带边界检查ISO/IEC WDTR 24731
char *strdup(const char *);将字符串的内容复制到一段新分配的内存空间POSIX;源于一个BSD扩展标准
int strerror_r(int, char *, size_t);将strerror()的结果放入一段给定的内存缓冲,此函数是线程安全的POSIX:2001
char *strerror_r(int, char *, size_t);使用线程安全的方式返回strerror()的结果。在必要的时候才使用给定的内存缓冲 (与POSIX中的定义不一致).GNU
size_t strlcat(char *dest, const char *src, size_t n);strcat的变体,带边界检查首先定义于OpenBSD,现在也可以在FreeBSD、Solaris、Mac OS X中找到
size_t strlcpy(char *dest, const char *src, size_t n);strcpy的变体,带边界检查首先定义于OpenBSD,现在也可以在FreeBSD、Solaris、Mac OS X中找到
char *strsignal(int sig);与strerror类似,返回有符号数sig对应的错误解释字符串(非线程安全函数)BSDs, Solaris, Linux
char *strtok_r(char *, const char *, char **);strtok的线程安全且可重入的版本POSIX

@函数名称:   strdup 

函数原型:   char *strdup(const char *s) 
函数功能:   字符串拷贝,目的空间由该函数分配  
函数返回:   指向拷贝后的字符串指针 
参数说明:   src-待拷贝的源字符串 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
#include <alloc.h> 
int main() 
{ 
  char *dup_str, *string="abcde"; 
  dup_str=strdup(string); 
  printf("%s", dup_str); 
  free(dup_str); 
  return 0; 
}


@函数名称:   strcpy 

函数原型:   char* strcpy(char* str1,char* str2); 
函数功能:   把str2指向的字符串拷贝到str1中去 
函数返回:   返回str1,即指向str1的指针 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
  char string[10]; 
  char *str1="abcdefghi"; 
  strcpy(string,str1); 
  printf("the string is:%s/n",string); 
  return 0; 
}


@函数名称:   strncpy 

函数原型:   char *strncpy(char *dest, const char *src,int count) 
函数功能:   将字符串src中的count个字符拷贝到字符串dest中去 
函数返回:   指向dest的指针 
参数说明:   dest-目的字符串,src-源字符串,count-拷贝的字符个数 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
  char string[10]; 
  char *str1="abcdefghi"; 
  strncpy(string,str1,3); 
  string[3]='/0'; 
  printf("%s",string); 
  return 0; 
}


@函数名称:   strcat 

函数原型:   char* strcat(char * str1,char * str2); 
函数功能:   把字符串str2接到str1后面,str1最后的'/0'被取消 
函数返回:   str1 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h>

int main() 
{ 
  char buffer[80];

  strcpy(buffer,"Hello "); 
  strcat(buffer,"world"); 
  printf("%s/n",buffer); 
  return 0; 
}


@函数名称:   strncat 

函数原型:   char *strncat(char *dest, const char *src, size_t maxlen) 
函数功能:   将字符串src中前maxlen个字符连接到dest中 
函数返回: 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h>

char buffer[80];

int main() 
{ 
  strcpy(buffer,"Hello "); 
  strncat(buffer,"world",8); 
  printf("%s/n",buffer); 
  strncat(buffer,"*************",4); 
  printf("%s/n",buffer); 
  return 0; 
}


@函数名称:   strcmp 

函数原型:   int strcmp(char * str1,char * str2); 
函数功能:   比较两个字符串str1,str2. 
函数返回:   str1<str2,返回负数; str1=str2,返回 0; str1>str2,返回正数.  
参数说明: 
所属文件:   <string.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  char *buf1="aaa", *buf2="bbb", *buf3="ccc"; 
  int ptr; 
  ptr=strcmp(buf2, buf1); 
  if(ptr>0) 
    printf("buffer 2 is greater than buffer 1/n"); 
  else 
    printf("buffer 2 is less than buffer 1/n"); 
  ptr=strcmp(buf2, buf3); 
  if(ptr>0) 
    printf("buffer 2 is greater than buffer 3/n"); 
  else 
    printf("buffer 2 is less than buffer 3/n"); 
  return 0; 
}


@函数名称:   strncmp 

函数原型:   int strncmp(char *str1,char *str2,int count) 
函数功能:   对str1和str2中的前count个字符按字典顺序比较 
函数返回:   小于0:str1<str2,等于0:str1=str2,大于0:str1>str2 
参数说明:   str1,str2-待比较的字符串,count-比较的长度 
所属文件:   <string.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  int ptr; 
   char *buf1="aaabbb",*buf2="bbbccc",*buf3="ccc"; 
  ptr=strncmp(buf2,buf1,3); 
  if (ptr>0) 
    printf("buffer 2 is greater than buffer 1"); 
  else 
    printf("buffer 2 is less than buffer 1"); 
    ptr=strncmp(buf2,buf3,3); 
  if (ptr>0) 
    printf("buffer 2 is greater than buffer 3"); 
  else 
    printf("buffer 2 is less than buffer 3"); 
  return(0); 
}


@函数名称:   strpbrk 

函数原型:   char *strpbrk(const char *s1, const char *s2) 
函数功能:   得到s1中第一个“同时也出现在s2中”字符的位置指针 
函数返回:   位置指针 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
char *p="Find all vowels";

while(p) 
{ 
  printf("%s/n",p); 
  p=strpbrk(p+1,"aeiouAEIOU"); 
} 
return 0; 
}


@函数名称:   strcspn 

函数原型:   int strcspn(const char *s1, const char *s2) 
函数功能:   统计s1中从头开始直到第一个“来自s2中的字符”出现的长度 
函数返回:   长度 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h>

int main() 
{ 
  printf("%d/n",strcspn("abcbcadef","cba")); 
  printf("%d/n",strcspn("xxxbcadef","cba")); 
  printf("%d/n",strcspn("123456789","cba")); 
  return 0; 
}


@函数名称:   strspn 

函数原型:   int strspn(const char *s1, const char *s2) 
函数功能:   统计s1中从头开始直到第一个“不来自s2中的字符”出现的长度 
函数返回:   位置指针 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
#include <alloc.h> 
int main() 
{ 
  printf("%d/n",strspn("out to lunch","aeiou")); 
  printf("%d/n",strspn("out to lunch","xyz")); 
  return 0; 
}


@函数名称:   strchr 

函数原型:   char* strchr(char* str,char ch); 
函数功能:   找出str指向的字符串中第一次出现字符ch的位置 
函数返回:   返回指向该位置的指针,如找不到,则返回空指针 
参数说明:   str-待搜索的字符串,ch-查找的字符 
所属文件:   <string.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  char string[15]; 
  char *ptr, c='r'; 
  strcpy(string, "This is a string"); 
  ptr=strchr(string, c); 
  if (ptr) 
    printf("The character %c is at position: %d/n",c,ptr-string); 
  else 
    printf("The character was not found/n"); 
  return 0; 
}


@函数名称:   strrchr 

函数原型:   char *strrchr(const char *s, int c) 
函数功能:   得到字符串s中最后一个含有c字符的位置指针 
函数返回:   位置指针 
参数说明: 
所属文件:   <string.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  char string[15]; 
  char *ptr,c='r'; 
  strcpy(string,"This is a string"); 
  ptr=strrchr(string,c); 
  if (ptr) 
    printf("The character %c is at position:%d",c,ptr-string); 
  else 
    printf("The character was not found"); 
  return 0; 
}


@函数名称:   strstr 

函数原型:   char* strstr(char* str1,char* str2); 
函数功能:   找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符) 
函数返回:   返回该位置的指针,如找不到,返回空指针 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
  char *str1="Open Watcom C/C++",*str2="Watcom",*ptr; 
  ptr=strstr(str1,str2); 
  printf("The substring is:%s/n",ptr); 
  return 0; 
}


@函数名称:   strrev 

 函数原型:   char *strrev(char *s) 
函数功能:   将字符串中的所有字符颠倒次序排列 
函数返回:   指向s的指针  
参数说明: 
所属文件:   <string.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  char *forward="string"; 
  printf("Before strrev():%s",forward); 
  strrev(forward); 
  printf("After strrev(): %s",forward); 
  return 0; 
}


@函数名称:   strnset 

函数原型:   char *strnset(char *s, int ch, size_t n) 
函数功能:   将字符串s中前n个字符设置为ch的值 
函数返回:   指向s的指针 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
  char *string="abcdefghijklmnopqrstuvwxyz"; 
  char letter='x'; 
  printf("string before strnset: %s",string); 
  strnset(string,letter,13); 
  printf("string after strnset: %s",string); 
  return 0; 
}


@函数名称:   strset 

函数原型:   char *strset(char *s, int ch) 
函数功能:   将字符串s中所有字符设置为ch的值 
函数返回:   指向s的指针  
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
  char string[10]="123456789"; 
  char symbol='c'; 
  printf("Before strset(): %s", string); 
  strset(string, symbol); 
  printf("After strset(): %s", string); 
  return 0; 
}


@函数名称:   strtok 

函数原型:   char *strtok(char *s1, const char *s2) 
函数功能:   分解s1字符串为用特定分隔符分隔的多个字符串(一般用于将英文句分解为单词) 
函数返回:   字符串s1中首次出现s2中的字符前的子字符串指针 
参数说明:   s2一般设置为s1中的分隔字符 
        规定进行子调用时(即分割s1的第二、三及后续子串)第一参数必须是NULL 
        在每一次匹配成功后,将s1中分割出的子串位置替换为NULL(摘下链中第一个环),因此s1被破坏了 
        函数会记忆指针位置以供下一次调用 
         
所属文件:   <string.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  char *p; 
  char *buffer; 
  char *delims={ " .," };

  buffer=strdup("Find words, all of them."); 
  printf("%s/n",buffer); 
  p=strtok(buffer,delims); 
  while(p!=NULL){ 
    printf("word: %s/n",p); 
    p=strtok(NULL,delims); 
  } 
  printf("%s/n",buffer); 
  return 0; 
}


@函数名称:   strupr 

函数原型:   char *strupr(char *s) 
函数功能:   将字符串s中的字符变为大写 
函数返回: 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
  char *string="abcdefghijklmnopqrstuvwxyz",*ptr; 
  ptr=strupr(string); 
  printf("%s",ptr); 
  return 0; 
}


@函数名称:   strlwr 

函数原型:   char *strlwr(char *s) 
函数功能:   将字符串中的字符变为小写字符 
函数返回:   指向s的指针 
参数说明: 
所属文件:   <string.h>

#include<string.h> 
int main() 
{ 
  char str[]="HOW TO SAY?"; 
  printf("%s",strlwr(str)); 
  return 0; 
}


@函数名称:   strlen 

函数原型:   unsigned int strlen(char * str); 
函数功能:   统计字符串str中字符的个数(不包括终止符'/0') 
函数返回:   返回字符串的长度. 
参数说明: 
所属文件:   <string.h>

#include <stdio.h> 
#include<string.h> 
int main() 
{ 
  char str[]="how are you!"; 
  printf("the lence is:%d/n",strlen(str)); 
  return 0; 
}


@函数名称:   strerror 

函数原型:   char *strerror(int errnum) 
函数功能:   得到错误信息的内容信息 
 函数返回:   错误提示信息字符串指针 
参数说明:   errnum-错误编号 
所属文件:   <string.h>

#include <stdio.h> 
#include <errno.h> 
int main() 
{ 
  char *buffer; 
  buffer=strerror(errno); 
  printf("Error: %s",buffer); 
  return 0; 
}


@函数名称:   memcpy 

函数原型:   void *memcpy(void *dest, const void *src, size_t n) 
函数功能:   字符串拷贝 
函数返回:   指向dest的指针 
参数说明:   src-源字符串,n-拷贝的最大长度 
所属文件:   <string.h>,<mem.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
  char src[]="******************************"; 
  char dest[]="abcdefghijlkmnopqrstuvwxyz0123456709"; 
  char *ptr; 
  printf("destination before memcpy:%s/n",dest); 
  ptr=memcpy(dest,src,strlen(src)); 
  if (ptr) 
    printf("destination after memcpy:%s/n",dest); 
  else 
    printf("memcpy failed"); 
  return 0; 
}


@函数名称:   memccpy 

函数原型:   void *memccpy(void *dest, const void *src, int c, size_t n) 
函数功能:   字符串拷贝,到指定长度或遇到指定字符时停止拷贝 
函数返回: 
参数说明:   src-源字符串指针,c-中止拷贝检查字符,n-长度,dest-拷贝底目的字符串指针 
所属文件:   <string.h>,<mem.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  char *src="This is the source string"; 
  char dest[50]; 
  char *ptr; 
  ptr=memccpy(dest,src,'c',strlen(src)); 
  if (ptr) 
  { 
    *ptr='/0'; 
    printf("The character was found:%s",dest); 
  } 
  else 
    printf("The character wasn't found"); 
  return 0; 
}


@函数名称:   memchr 

函数原型:   void *memchr(const void *s, int c, size_t n) 
函数功能:   在字符串中第开始n个字符中寻找某个字符c的位置 
函数返回:   返回c的位置指针,返回NULL时表示未找到 
参数说明:   s-要搜索的字符串,c-要寻找的字符,n-指定长度 
所属文件:   <string.h>,<mem.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  char str[17]; 
  char *ptr; 
  strcpy(str,"This is a string"); 
  ptr=memchr(str,'r',strlen(str)); 
  if (ptr) 
  printf("The character 'r' is at position: %d",ptr-str); 
  else 
  printf("The character was not found"); 
  return 0; 
}


@函数名称:   memcmp 

函数原型:   int memcmp(const void *s1, const void *s2,size_t n) 
函数功能:   按字典顺序比较两个串s1和s2的前n个字节  
函数返回:   <0,=0,>0分别表示s1<,=,>s2 
参数说明:   s1,s2-要比较的字符串,n-比较的长度 
所属文件:   <string.h>,<mem.h>

#include <stdio.h> 
#include <string.h> 
int main()  
{  
  char *buf1="ABCDE123";  
  char *buf2="abcde456";  
  int stat;  
  stat=memcmp(buf1,buf2,5);  
  printf("The strings to position 5 are ");  
  if(stat) printf("not ");  
  printf("the same/n");  
  return 0;  
} 

 

@函数名称:   memicmp 

函数原型:   int memicmp(const void *s1, const void *s2, size_t n) 
函数功能:   按字典顺序、不考虑字母大小写对字符串s1,s2前n个字符比较 
函数返回:   <0,=0,>0分别表示s1<,=,>s2 
参数说明:   s1,s2-要比较的字符串,n-比较的长度 
所属文件:   <string.h>,<mem.h>

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
  char *buf1="ABCDE123"; 
  char *buf2="abcde456"; 
  int stat; 
  stat=memicmp(buf1,buf2,5); 
  printf("The strings to position 5 are "); 
  if(stat) printf("not"); 
  printf("the same"); 
  return 0; 
}


@函数名称:   memmove 

函数原型:   void *memmove(void *dest, const void *src, size_t n) 
函数功能:   字符串拷贝 
函数返回:   指向dest的指针 
参数说明:   src-源字符串,n-拷贝的最大长度 
所属文件:   <string.h>,<mem.h>

#include <string.h> 
#include <stdio.h> 
int main() 
{ 
  char dest[40]="abcdefghijklmnopqrstuvwxyz0123456789"; 
  printf("destination prior to memmove:%s/n",dest); 
  memmove(dest+1,dest,35); 
  printf("destination after memmove:%s",dest); 
  return 0; 
}


@函数名称:   memset 

函数原型:   void *memset(void *s, int c, size_t n) 
函数功能:   字符串中的n个字节内容设置为c 
函数返回: 
参数说明:   s-要设置的字符串,c-设置的内容,n-长度 
所属文件:   <string.h>,<mem.h>

#include <string.h> 
#include <stdio.h> 
#include <mem.h> 
int main() 
{ 
  char buffer[]="Hello world"; 
  printf("Buffer before memset:%s/n",buffer); 
  memset(buffer,'*',strlen(buffer)-1); 
  printf("Buffer after memset:%s",buffer); 
  return 0; 
} 


REF:

1,http://zh.wikipedia.org/wiki/String.h

编写名为strdup的函数 编写名为strdup的函数,此函数使用动态存储分配来产生字符串的副本。例如调用 • p= strdup(str); • 将为和str相同的字符串分配空间,并且把字符串str的内容 复制给新字符串,然后返回指向新字符串的指针,如果非配 失败则返回空指针。 立即下载

相关推荐

FoundationPose复现及Realsense应用

FoundationPose是一个统一的基础模型,用于6D对象姿态估计和跟踪,支持基于模型和无模型的设置。在测试时可以立即应用于未见过的新对象,无需微调,只要给出其CAD模型,或者捕获少量RGBD参考图像。得益于统一框架,下游姿态估计模块在两种3D模型设置中都是相同的,当没有CAD模型时,使用神经隐式表示进行高效的新视角合成。通过大规模合成训练,辅以大型语言模型(LLM)、一种基于transformer的新架构和对比学习公式,实现了强大的泛化能力。

m0_56661101的博客 1万+

Hi3519a编译工具链string.h中为啥没有strlcpy和strlcat

1.前言 今天从hi3520dv300移植代码到hi3519av100中,原来代码中使用高频率strlcpy函数,而在hi3519a中却报没有定义的错误。通过查看编译链中string.h中定义,hi3519av100确实没有。网上资料说strlcpy和strlcat是BSD的C库函数,glibc维护者一直拒绝将其加入,并不属于ANSI C,至今也还不是标准。为了和之前海思芯片编译工具兼容...

阿Sir问道 599

Brim与ZUI协同安装指南:从下载到流量分析实战

本文提供Brim与ZUI协同安装与实战指南,详细讲解从下载、环境变量配置到流量分析的全流程。通过将PCAP文件转换为ZNG格式,结合直观的Zed查询语言,这套组合能极大提升大型网络数据包的分析效率,是网络安全与运维人员进行高效流量分析的利器。

metal的博客 458

多线程的安全性

public class ShareTest { public static void main(String[] args) { ShareThread st = new ShareThread(); Thread a = new Thread(st,"A"); Thread b = new Thread(st,"B"); Thread c = new Thread(st,"C"); Thread e = new Thread(st,"E"); Thread d =.

turn_sole的博客 487

CH32V IAP跳转避坑指南:为什么你的APP跳不过去?从mstatus寄存器配置到函数属性详解

本文深入解析CH32V系列MCU的IAP跳转机制,从mstatus寄存器配置到函数属性优化,详细讲解如何避免APP跳转失败。文章涵盖地址准备、模式切换、跳转执行等关键步骤,并提供调试技巧与实战案例,帮助开发者快速解决CH32V IAP跳转中的常见问题。

weixin_30955617的博客 139

金融数据自动化:从同花顺API到Excel的智能转换之旅

本文详细介绍了如何利用同花顺API实现金融数据自动化处理,并将其智能转换为Excel格式的全流程。通过Python编程和Excel高级技巧,读者可以掌握从数据获取、清洗到输出的完整解决方案,大幅提升金融数据分析的效率和准确性。文章特别强调了同花顺API的使用技巧和Excel自动化输出的最佳实践。

sql99的博客 461

C语言标准库——<string.h>

C语言标准库——

TXFBAP的博客 7911

别再手动续期SSL证书了!用acme.sh配合阿里云DNS API,实现全自动HTTPS证书管理

本文详细介绍了如何使用acme.sh配合阿里云DNS API实现SSL/TLS证书的全自动管理,彻底解决手动续期带来的风险与不便。通过自动化部署流程,包括环境准备、API集成、多域名证书申请等关键步骤,帮助运维人员构建高效、可靠的HTTPS证书管理体系,显著提升安全性和运维效率。

weixin_29200485的博客 268

【C语言】string.h——主要函数总结

string.h主要定义了字符串处理函数和内存操作函数。

hdz_wiz_csdn的博客 4413

如何在win11中用双硬盘或移动硬盘装Ubuntu 20.04 双系统

win11 安装双系统

qq_42817360的博客 5138

基于计算机视觉的无人便利店技术:从算法到部署的系统化实战指南

摘要:本文系统介绍了基于计算机视觉的无人便利店技术方案,提出"商品检测-跟踪-动作识别-防损-结算"五段式流水线架构。详细阐述了YOLOv8-Seg商品检测、OC-Sort多目标跟踪、3D-CNN+ST-GCN动作识别等核心算法实现,并完成NVIDIA Jetson Xavier NX边缘端的优化部署。通过TensorRT量化、DeepStream加速等技术手段,系统在保持94.7%动作识别准确率的同时,将漏单率降至0.8%,单店云端算力成本较行业平均降低84%。所有代码已开源,可直接应

博客 624

C语言头文件<string.h>中的常用函数

函数原型:int memcmp(const void *str1, const void *str2, size_t n)说明:strcat(str1, str2)把str1(包括“\0”)复制到str2后面(删除str2原来末尾的“\0”)函数原型:int strcmp(char *str1,char * str2,int n)说明:stricmp(str1,str2),前者大则值为1,相同则为0,后者大则为-1。说明:strcmp(str1,str2) 前者大则值为1,相同则为0,后者大则为-1。

weixin_43362027的博客 3903

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[C语言]string.h常用字符串库函数详解+模拟实现

适合初学者的string.h库函数学习和模拟

FlashRider的干货分享小窝 1927

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C语言 -- string.h中函数功能详解与手动实现 - 01(常用函数memset、memcmp、strcmp、strncmp ...)

一般系统中提供一个标准的C库 string.h ,用于操作各种操作字符串 strxxx、内存 memxxx 的库函数。作为 C标准库 的一部分,它们被强制要求可以在任何支持 C语言 的平台上运行。 不管是在面试中还是平时的工作中,对 string.h 文件中的大部分的函数的都有涉及,并且会经常遇到手撕某个或者某几个库函数的题目,其重要程度可想而知。

青椒*^_^*凤爪爪的博客 4165

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)

一般系统中提供一个标准的 C库 string.h ,用于操作各种操作字符串 strxxx、内存 memxxx 的库函数。作为 C标准库 的一部分,它们被强制要求可以在任何支持 C语言 的平台上运行。 不管是在面试中还是平时的工作中,对 string.h 文件中的大部分的函数的都有涉及,并且会经常遇到手撕某个或者某几个库函数的题目,其重要程度可想而知。

青椒*^_^*凤爪爪的博客 3181

C语言 -- string.h中函数功能详解与手动实现 - 03(常用函数memchr、strchr、strstr、strspn、strlen、strnlen...)

一般系统中提供一个标准的 C库 string.h ,用于操作各种操作字符串 strxxx、内存 memxxx 的库函数。作为 C标准库 的一部分,它们被强制要求可以在任何支持 C语言 的平台上运行。 不管是在面试中还是平时的工作中,对 string.h 文件中的大部分的函数的都有涉及,并且会经常遇到手撕某个或者某几个库函数的题目,其重要程度可想而知。

青椒*^_^*凤爪爪的博客 4263

【C语言】模拟实现string.h中的常用函数

1、实现strcpy()函数 函数名:strcpy 功能:将一个字符串赋值给另一个字符串 说明:strcpy(str1,str2)表示将str2赋值给str1 char* my_strcpy(char *dest, char *src) { assert(dest != NULL); assert(src != NULL); char* ret = dest; while (*dest...

ZD_012的博客 506

常见的string.h库的函数

string.h库函数和kmp(简述)

weixin_74284832的博客 739

C语言 - string头文件

使用strcpy函数,会将后一个被复制的字符串复制到前一个字符串中。需要注意,存放复制字符串的数组。与3中的strncpy部分复制函数用法一致,比较两个字符串的前几位字符;查找并返回字符串中首个被查找字符的指针。字符串str1的内存空间一定要足够,否则代码出错。复制字符串后,原先字符串中的数据会被覆盖,也就是消失。3.strncpy - 不完全复制字符串。8.strchr - 查找字符串中的字符。2.strcpy函数 - 复制字符串。查找字符串中的一小段字符串出现的位置。,否则会数组溢出,代码报错。

2201_76135034的博客 661

【C/C++基础】string.h字符串标准库常用函数

string.h常用函数 使用时需要包含头文件<string.h> #include <string.h> 本文介绍了3个常用函数 strcat() strcmp() strlen() 扩展了strlen()与sizeof()的却比 (1) strcat(字符数组1,字符数组2) 作用:链接两个字符数组中的字符串,把字符串2链接到字符串1后边,结果放在字符数组1中。不要搞反了,是把右边连接到左边的屁股后边去。 说明: (a)字符数组1必须足够大,能够容纳连接后的新字符串。 (b

Ethan-Code's blog 2600

string.h 中常用函数

string.h 中常用函数 strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *strcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10];   char *str1 = "abcdefghi";   st

PengCoX 796

C语言string.h库中的常用函数

首先有几点说明: 源字符串首地址:src 源字符串表示的是:从地址src开始第一个不是NULL的字符开始到NULL结束。('\0'就是NULL) 举例: char s1[100]={,'\0','\0','a','b','c','d','\0','e','f','g'}; char  dest[100]={'\0'} 此时如果执行strcpy(dest,s1)函数,则实际上只将abc复

bhyangjian的博客 2045

C/C++ 对常见字符串库函数的实现

在C中的string.h头文件中存在很多对字符串进行操作的函数,利用这些函数可以方便的对字符串进行操作。下面将对常见的字符串函数进行解释和实现。 1、strcpy 函数原型:char* _strcpy(char* dest,char* src)函数功能:将str所指由nullptr的字符串复制到dst所指的数组中,并返回dest的指针。函数说明:保证src和dest所指内存区域不能重叠且dest必须有足够的空间来容纳src的字符串。函数实现: char* _strcpy(char* dest, co

weixin_43606861的博客 236

常用标准库_C标准库string.h中几个常用函数的使用详解

strlen计算字符串长度size_t strlen(const char *str)计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。函数实现:int Strlen(const char *str) { assert(str); int len = 0; while ((*str++) != '0')len++; return len; }strcp...

weixin_29514317的博客 121
上一篇: 求二叉树中节点的最大距离
下一篇: C语言math.h中的常用函数
Scandinavians
博客等级 码龄19年 36粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值