#include

时间:2023-12-15 15:50:32

1 _memccpy

2 _memicmp

3 _strlwr

4 _strrev

5 _strset

6 _strupr

7 memccpy

8 memchr

9 memcpy

10 memicmp

11 memset

12 strcasestr

13 strchr

14 strncat

15 strncmp

16 strncpy

17 strrchr

18 strstr

19 strtok

1 _memccpy

如果(第2个参数)src中,没有(第3个参数)字符c,也就等价于memcpy

从(第2个参数)src字符串中读取(第4个参数)count个字符,复制到(第1个参数)dest

某些时候,可以把某个字符设置为结束符,代表结束。

原型

extern void *memccpy(void *dest, void *src, unsigned char c, unsigned int count);

简介

参数:

dest Pointer to the destination.

src Pointer to the source.

c Last character to copy.

count Number of characters.

头文件:string.h :

由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符c则停止复制。

返回值:如果c没有被复制,则返回NULL,否则,返回字符c 后面紧挨一个字符位置的指针。

2 _memicmp

3 _strlwr

功能:将字符串s转换为小写形式

说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。

4 _strrev

颠倒字符串s的所有字符的顺序

5 _strset

原型:extern char *strset(char *s, char c);

用法:#include <string.h>

功能:把字符串s中的所有字符都设置成字符c。

说明:返回指向s的指针。

6 _strupr

strupr,函数的一种,将字符串s转换为大写形式。

说明:只转换s中出现的小写字母,不改变其它字符。返回指向s的指针。

7 memccpy

原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);

用法:#include <string.h>

功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。

说明:返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL。ch被复制。

8 memchr

原型:extern void *memchr(void *buf, char ch, unsigned count);

用法:#include <string.h>

功能:从buf所指内存区域的前count个字节查找字符ch。

说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。

9 memcpy

void *memcpy(void *dest, const void *src, size_t n);

从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

也适用于数组

 #define _CRT_SECURE_NO_WARNINGS

 #include<stdio.h>
#include<stdlib.h> main()
{
int a[] = { ,,,, }; int b[] = { ,,,, }; int i; memcpy(a, b, );//每个元素4个字节,2个元素8个字节 for (i = ;i < ;i++)
{
printf("%d\n", a[i]);
} system("pause");
}

10 memicmp

原型:extern int memicmp(void *buf1, void *buf2, unsigned int count);

用法:#include <string.h>

功能:比较内存区域buf1和buf2的前count个字节但不区分字母的大小写。

说明:memicmp同memcmp的唯一区别是memicmp不区分大小写字母。 当buf1<buf2时,返回值<0 当buf1=buf2时,返回值=0 当buf1>buf2时,返回值>0

11 memset

void *memset(void *s, int ch, size_t n);

函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。

memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。

memset(str, '\0', strlen(str));快速清空

//第1个参数是内存的首地址

//第2个参数是要设置的字符

//第3个参数是整数,从首地址开始前进多少个字节,把这一段设置为第2个参数的字符

12 strcasestr

char *strcasestr(const char *haystack, const char *needle);

用于在c串haystack中查找c串needle,忽略大小写。如果找到则返回needle串在haystack串中第一次出现的位置的char指针

13 strchr

strchr函数原型:extern char *strchr(const char *s,char c);查找字符串s中首次出现字符c的位置。

14 strncat

(char *dest,char *src,int n);

把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的'\0'),再追加'\0'。

15 strncmp

int strncmp ( const char * str1, const char * str2, size_t num );

strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。此函数功能即比较字符串str1和str2的前maxlen个字符。如果前maxlen字节完全相等,返回值就=0;在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则依次比较str1和str2的前n位,设i(i<n)为两字符串首次的不同位,则返回(str1[i]-str2[i])。

16 strncpy

strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, const char *src, int n),把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。

格式

函数原型char*strncpy(char*dest,char*src,size_tn);

17 strrchr

函数名称: strrchr

函数原型:char *strrchr(const char *str, char c);

所属库: string.h

函数功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回这个位置的地址。如果未能找到指定字符,那么函数将返回NULL。使用这个地址返回从最后一个字符c到str末尾的字符串。

相关函数: strchr

18 strstr

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

19 strtok

分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。

原型

char *strtok(char s[], const char *delim);

功能

分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

例如:strtok("abc,def,ghi",","),最后可以分割成为abc def ghi.尤其在点分十进制的IP中提取应用较多。

strtok 的函数原型为char *strtok(char *s, char *delim),功能为“Parse S into tokens separated by characters in DELIM.If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. ” 翻译成汉语就是:作用于字符串s,以包含在delim中的字符为分界符,将s切分成一个个子串;如果,s为空值NULL,则函数保存的指针 SAVE_PTR在下一次调用中将作为起始位置。

 #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h> void main()
{
char str[];
int a[];
char *p = NULL;
int i = ;
int j = ;
int sum = ;
double avg = ; gets(str);//输入一连串数字,以空格为间隔 p = strtok(str, " ");//分割字符串,以空格" "为间隔 while (p)
{
a[i] = atoi(p);//字符串转换为整数
p = strtok(NULL, " ");//之后再次调用要把s设成NULL
i++;//下标增加
} for (j = ; j < i; j++)
{
printf("a[%d]=%d\n", j, a[j]);//循环打印
sum += a[j];//求和
} avg = 1.0*sum / i;//平均值 printf("和是%d,平均值是%lf\n", sum, avg); system("pause");
}