C语言一些函数的用法

有一些函数我经常会忘记它们的用法,记录一下

1.memset

  1. memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容以字节为单位全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。
  2. 函数介绍:
    void *memset(void *s, int ch, size_t n);
    函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
    memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法 [1] 。
    memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度。
int arr[105];
memset(arr,0,sizeof(arr);
  1. 如果要将一个数组中的全部元素赋值,将ch设为0或-1,则数组中的所有元素均会被赋值为0或-1.
    但如果设为1,则所有元素会被赋值为16843009。
  2. 更详细的可见:https://www.cnblogs.com/heyonggang/p/3419574.html

2.fill函数

  1. fill()函数参数:fill(first,last,val);
    first 为容器的首迭代器,last为容器的末迭代器,val为将要替换的值。
int arr[105];
fill(arr, arr+100, 1);
  1. fill()是把一块单元赋成指定的值,也就是说任何值都可以
    memset()则是将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值。

3.一些字符串函数

在这里插入图片描述

4.sprintf函数

sprintf是一个功能很强大的函数
百度文库:https://jingyan.baidu.com/article/948f5924f1b242d80ef5f97c.html
以下转载自:https://blog.csdn.net/oyhb_1992/article/details/75095472
sprintf() 格式化输出函数(图形)
功能: 函数sprintf()用来作格式化的输出。
用法: 此函数调用方式为intsprintf(char *string,char *format,arg_list);
说 明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用 outtextxy()函数将串里的字符显示在屏幕上。arg_list为参数表,可有不定个数。通常在绘图方式下输出数字时可调用sprintf()函 数将所要输出的格式送到第一个参数,然后显示输出。
函数名: sprintf
功 能: 送格式化输出到字符串中
用 法: intsprintf(char *string, char *farmat [,argument,…]);
程序例:
#include
#include
int main(void)
{
char buffer[80];
sprintf(buffer, “An approximation ofPi is %f\n”, M_PI);
puts(buffer);
return 0;
}

sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,而printf是将一个格式化的字符串输出到屏幕。sprintf的第一个参数应该是目的字符串,如果不指定这个参数,执行过程中出现 "该程序产生非法操作,即将被关闭…"的提示。
因为C语言在进行字符串操作时不检查字符串的空间是否够大,所以可能会出现数组越界而导致程序崩溃的问题。即使碰巧,程序没有出错,也不要这么用,因为早晚会出错。所以一定要在调用sprintf之前分配足够大的空间给buf。

5.sort函数

第三个参数自定义函数,return a>b

bool cmp(int a,int b)
{
	return a>b;
}

注意不要写成a>=b,否则会有错误,不知道为什么。。。

6.sqrt

参数类型为double,但好像int型也可以,但是提交会编译错误
在这里插入图片描述

7.pow

这个函数的返回值类型为double,存在一些精度问题,所以尽量少用。

如果需要用的话可以自定义一个返回整型的函数。

8.sscanf

https://blog.csdn.net/u012763126/article/details/82925732

扫描二维码关注公众号,回复: 8609354 查看本文章

9.cin

cin读入一行,getline(cin,s)

cin可以读入字符数组和string,但是scanf应该只能读入字符数组,不能读入string

10.swap

好像是在namespace std中,用于交换两个值。

11.C++中ios::sync_with_stdio(false);

https://blog.csdn.net/weixin_44015865/article/details/84974373

用来提升cin和cout的速度。

12.对于自定义函数中的exgcd(int &a)

说明这是传递给这个参数的实参的引用
对这个形参修改 就会对实参修改
是一种传址操作

13.reverse函数

用于翻转C++中的字符串,包含在algorithm头文件中
用法:reverse(s.begin(), s.end())

发布了162 篇原创文章 · 获赞 18 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43772166/article/details/88605854