🤖 AI文章摘要 gemini-2.0-flash-lite

这篇文章介绍了C语言中string.h库中的一些函数,包括strcpy、strncpy、strcat、strncat、strstr、strchr和strtok。这些函数用于字符串的复制、连接、查找和分割。strcpy用于复制字符串,strncpy可以限制复制的长度;strcat和strncat用于字符串连接;strstr用于查找子字符串;strchr用于查找单个字符;strtok用于将字符串分割成多个片段。

1. string.h

1.1 数据结构

  
  

1.2 函数

  char* strcpy(char *dest, const char *src);返回目标字符数组首地址, 会复制'\0',到‘\0’结束复制,而strncpy是否拷贝结束符看指定的长度是否包含'\0'
char* strncpy(char *dest, const char *src, size_t n)将指定字符串复制到指定字符数组,原有的值会被覆盖,

char* strcat(char *dest, const char *src);
char* strncat(char *dest, const char *src, size_t n);

char* strstr(const char *haystack, const char *needle)在字符串haystack中查找字符串needle出现的位置
char* strchr(const char *s, int c)返回第一次出现这个字符的地址,这个函数推荐使用在字符查找上
char* strtok(char *str, const char *delim)将字符串分割成一个个片段. strtok()在参数s的字符串中发现参数delim中包含的分割字符时, 则会将该字符改为\0 字符,当连续出现多个时只替换第一个为\0. 当第一次使用这个函数时必须指定目标字符串地址,若往后还需要对同一个字符串继续进行切割,可将目标字符串地址设置成NULL
//示例
char a[100] = "adc*fvcv*ebcy*hghbdfg*casdert";
char *s = strtok(a, "*");//将"*"分割的子串取出,注意使用的是双引号!!
while (s != NULL){
	printf("%s\n", s);//因为是字符串,可以使用%s打印
	s = strtok(NULL, "*");//每次返回切割的下一部分的首地址
}