UNIX编程环境(The UNIX Programming Environment) 备忘录(六)

本文介绍了C语言中的标准I/O操作及字符串处理函数,包括文件读写、字符测试宏、字符串函数等核心内容,并提供了实际编程中的应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第六章 使用标准I/O编程

 

<ctype.h> 字符测试宏

isalpha(c) 字母 a-z A-Z
issupper(c) 大写 A-Z
islower(c) 小写 a-z
isdigit(c) 数字 0-9
isxdigit(c) 十六进制数字 0-9 a-f A-F
isalnum(c) 字母或数字
isspace(c) 空格,Tab,换行,垂直Tab,换页,回车
ispunct(c) 除去字母,控制字符,空白之外的.(punct标点符号)
isprint(c) 可打印字符:任何图形字符
iscntrl(c) 控制字符: 0 <= c < 040 || c == 0177
isascii(c) ASCII字符: 0 <= c <= 0177

在FreeBSD下位置:/usr/include/ctype.h
==========================================
关于C中接受不定参数的问题

示例:
从命令行中接受多个参数
int main(int argc, char *argv[])
这样,argc为命令行中被空白字符分隔的块数,argv[0]为命令名,
argv[1]为第一个参数,argv[argc - 1]为最后一个参数


注意:
argv是一个指向字符数组(字符串)的指针,不要把它想成是指向
字符的指针,即不要理解成char argv[]

==========================================
标准字符串函数

strcat(s,t)  把t接在s后面,返回s
strncat(s,t,n)  把t的前n个字符接在s后面,返回s
strcpy(s,t)  将t拷贝到s中,返回s
strncpy(s,t,n)  将t的前n个字符拷贝到s中,返回s
strcmp(s,t)  比较s和t,分别返回对应的<0,0,>0
strncmp(s,t,n)  至多比较n个字符
strlen(s)  字符串长度
strchr(s,c)  返回字符串中第一个指向字符c的指针,否则返回NULL
strrchr(s,c)  返回最后一个,否则返回NULL
atoi(s)   返回s的整数值
atof(s)   返回s的浮点值;需声明double atof()
malloc(n)  返回一个指向n字节内存的指针,分配失败返回NULL
calloc(n,m)  返回一个指向n*m字节内存的指针,并设置为0,分配失败返回NULL
free(p)   释放由malloc和calloc分配的内存

==========================================
一些<stdio.h>中的定义

stdio   标准输入
stdout   标准输出
stderr   标准错误输出
EOF   文件结束,一般是-1
NULL   空指针
FILE   用于定义文件指针
BUFSIZ   正常的I/O缓冲区大小(一般是512或1024)
getc(fp)  从流fp中返回一个字符
getchar()  getc(stdin)
putc(c,fp)  向流fp输出一个字符
putchar(c)  putc(c,stdout)
feof   当文件结束时得到一个不为0的数
ferror   当文件出错时得到一个不为0的数
fileno   流fp的文件描述符


==========================================
常用的标准I/O函数

fp=fopen(s,模式) 
c=getc(fp)  
putc(c,fp)  
ungetc(c,fp)  将字符放回fp中,一次只能放回一个
scanf(格式,...)  
fscanf(fp,...)  从文件读入
sscanf(s,...)  从字符串读入
printf(格式,...)
fprintf(fp,...)
sprintf(s,...)
fgets(s,n,fp)  从文件fp中读入n个字符到s中,在文件末尾返回NULL
fputs(s,fp)  将s输出到fp中
fflush(fp)  将缓冲区的数据写到fp中
fclose(fp)  
fp=popen(s,模式) 为命令s打开一个管道
pclose(fp)  关闭管道fp
system(s)  运行命令s,等待其结束

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值