
正文
数据结构C语言基础函数 数据结构c语言版函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言中有哪些函数
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为
(ch
=
getc(fp))
!=
EOF.EOF为文件结束标志,定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin时,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int
getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:while
((c
=
getchar())
!=
'#')这是以#来结束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char
*
gets(char
*str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int
puts(char
*str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int
fputs(char
*str,
file
*fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int
fgetc(FILE
*fp)
fgetc从fp的当前位置读取一个字符.
int
fputc(int
ch,
file
*fp)
fputc是将ch写入fp当前指定位置.
int
fscanf(FILE
*fp,
char
*format,
输入列表)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int
fprintf(FILE
*fp,
char
*format,
输出列表)
fprintf将格式化数据写入流式文件中.
数据块读写函数
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
参数说明:
buffer:是一个指针。
对fread
来说,它是读入数据的存放地址。
对fwrite来说,是要输出数据的地址(均指起始地址)。
size:
要读写的字节数。
count:
要进行读写多少个size字节的数据项。
fp:
文件型指针。
相关问答
Q1: C语言实现常用数据结构(一)
实现了链表数据结构C语言基础函数,栈、哈希表等
哈希表由数组加链表实现。通过计算key的哈希值数据结构C语言基础函数,将哈希值转成int类型并与数组长度进行与运算得到数组下标数据结构C语言基础函数,数组每个元素都是一个链表,默认为NULL。
通过InitHashTable函数得到初始化的哈希表。已实现功能有数据结构C语言基础函数:添加键值、删除键值、根据键获取值,清理所有键值对、回收哈希表,可以根据例子遍历键值。
Key可以扩展为任何类型,但需要实现相应类型HashCode的算法,此处只支持字符串类型。
C语言实现常用数据结构二
项目地址
md5.h
md5.c
m_hashtable.h
m_hashtable.c
测试使用
Q2: 数据结构---C语言基础
程序=算法+数据结构
数据结构是设计OS、DBMS、编译等系统程序和各种应用程序的重要基础。
常见的数据结构有:数组、栈、队列、表、串、树、图和文件等。
数据是什么?
①杂乱的数据不能表达和交流信息
②数据之间是有联系的
③数据之间是有结构的;
④在某种数据的结构上可以定义一组运算
程序设计的基本要素:
数据(Date) :所有能被计算机处理的符号的集合。
数据元素(Data Element) :数据这个集合中的单个个体。
数据项(Data Item) :数据元素常常被分为若干个数据项,数据项是数据具有意义的最小单位。
数据对象(Data Object) :具有相同特性的数据元素的集合。
数据结构(Data Structure) :是带有结构的数据元素的集合。
逻辑结构(Logical Structure) :指数据元素之间的结构关系。
物理结构(Physical Structure) :指数据结构在计算机内存中的表示。
物理结构的存放直接决定了逻辑结构的选择。
什么是算法
算法是一个有限的指令集,遵循指令流可以完成特定的功能。
算法的基本特性:
如何衡量一个正确算法的好坏?
算法与程序的区别
主要区别在:有穷性、正确性和描述方法
程序可以是无穷的,例如OS。
算法是有穷的;程序可以是错误的,算法必须是正确的;
程序是用程序设计语言描述,在机器上可以执行;
算法还可以用框图、自然语言等方式描述。
衡量的三个标准:
运行所花费的时间(算法的时间特性);
所占用存储空间的大小(算法的空间特性);
其他(可读性、易调性、健壮性、可移植性等)
时间和空间特性的巨大改进源于更好的数据结构或算法。
为什么要计算时间复杂度?
设:A1,A2和A3是求解同一问题的不同算法,其时间复杂度分别为:O(n), O(nlogn), O(N!)。
C1和C2为计算机,且C2的计算速度是C1的10倍。
不必追求高效算法,低效算法可由高速计算机来弥补的看法,是错误的。
Q3: c语言版数据结构图的一些基本操作函数如下,有三个地方不了解,请各位帮帮忙?
(1)问题三:
i=LocateVex(*G,va);
j=LocateVex(*G,vb);
*G不是指针,是指针G所指对象,就是ALGraph类型。程序中多处使用变量G,但是不同的地方,含义不同。在void CreateGraph(ALGraph *G)里面,G是一个指针,因此,引用其所指对象,要用*G。其他情况下,ALGraph G,G不是指针。
(2)第一:这个void DFSTraverse(ALGraph G,void(*print)(char*)) 为什么不能直接调用print函数,像调用DFS函数一样?可以的,使用函数指针是为以后任意扩展输出程序,以适应不同需要,并且可以作为参数传递。
(3)第二:FirstAdjVex(G,G.vertices[v].data)为什么要用顶点,用了之后又取位置,而不直接用位置,会有什么漏洞吗?不会
int FirstAdjVex(ALGraph G,VertexType v)
{
ArcNode *p;
int v1;
v1=LocateVex(G,v);
p=G.vertices[v1].firstarc;
if(p)
return p-adjvex;
else
return -1;
}
利用已经定义的定位函数LocateVex直接定位顶点v,然后直接读取其firstarc,很自然的过程。
关于数据结构C语言基础函数和数据结构c语言版函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







