C语言库函数大全及应用实例十四

简介: 原文:C语言库函数大全及应用实例十四                                       [编程资料]C语言库函数大全及应用实例十四 函数名: strset 功 能: 将一个串中的所有字符都设为指定字符 用 法: char *strset(char *str, char c); 程序例: #i nclude #i nclude .
原文: C语言库函数大全及应用实例十四

                                      img_bc31e47721e0c70a99a9112a5a2c8ee7.gif[编程资料]C语言库函数大全及应用实例十四

函数名: strset
功 能: 将一个串中的所有字符都设为指定字符
用 法: char *strset(char *str, char c);
程序例: <?xml:namespace prefix="o" ns="urn:schemas-microsoft-com:office:office"?>

#i nclude
#i nclude .h>.h>

int main(void)
{
char string[10] = "123456789";
char symbol = 'c';

printf("Before strset(): %s\n", string);
strset(string, symbol);
printf("After strset(): %s\n", string);
return 0;
}

函数名: strspn
功 能: 在串中查找指定字符集的子集的第一次出现
用 法: int strspn(char *str1, char *str2);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

int main(void)
{
char *string1 = "1234567890";
char *string2 = "123DC8";
int length;

length = strspn(string1, string2);
printf("Character where strings differ is at position %d\n", length);
return 0;
}

函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: char *strstr(char *str1, char *str2);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr;

ptr = strstr(str1, str2);
printf("The substring is: %s\n", ptr);
return 0;
}

函数名: strtod
功 能: 将字符串转换为double型值
用 法: double strtod(char *str, char **endptr);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
char input[80], *endptr;
double value;

printf("Enter a floating point number:");
gets(input);
value = strtod(input, &endptr);
printf("The string is %s the number is %lf\n", input, value);
return 0;
}

函数名: strtok
功 能: 查找由在第二个串中指定的分界符分隔开的单词
用 法: char *strtok(char *str1, char *str2);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
char input[16] = "abc,d";
char *p;

/* strtok places a NULL terminator
in front of the token, if found */
p = strtok(input, ",");
if (p) printf("%s\n", p);

/* A second call to strtok using a NULL
as the first parameter returns a pointer
to the character following the token */
p = strtok(NULL, ",");
if (p) printf("%s\n", p);
return 0;
}

函数名: strtol
功 能: 将串转换为长整数
用 法: long strtol(char *str, char **endptr, int base);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
char *string = "87654321", *endptr;
long lnumber;

/* strtol converts string to long integer */
lnumber = strtol(string, &endptr, 10);
printf("string = %s long = %ld\n", string, lnumber);

return 0;
}

函数名: strupr
功 能: 将串中的小写字母转换为大写字母
用 法: char *strupr(char *str);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;

/* converts string to upper case characters */
ptr = strupr(string);
printf("%s\n", ptr);
return 0;
}

函数名: swab
功 能: 交换字节
用 法: void swab (char *from, char *to, int nbytes);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

char source[15] = "rFna koBlrna d";
char target[15];

int main(void)
{
swab(source, target, strlen(source));
printf("This is target: %s\n", target);
return 0;
}

函数名: system
功 能: 发出一个DOS命令
用 法: int system(char *command);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
printf("About to spawn command.com and run a DOS command\n");
system("dir");
return 0;
}


函数名: tan
功 能: 正切函数
用 法: double tan(double x);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
double result, x;

x = 0.5;
result = tan(x);
printf("The tan of %lf is %lf\n", x, result);
return 0;
}


函数名: tanh
功 能: 双曲正切函数
用 法: double tanh(double x);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
double result, x;

x = 0.5;
result = tanh(x);
printf("The hyperbolic tangent of %lf is %lf\n", x, result);
return 0;
}


函数名: tell
功 能: 取文件指针的当前位置
用 法: long tell(int handle);
程序例:

#i nclude
#i nclude
#i nclude
#i nclude .h>.h>.h>.h>

int main(void)
{
int handle;
char msg[] = "Hello world";

if ((handle = open("TEST.$$$", O_CREAT | O_TEXT | O_APPEND)) == -1)
{
perror("Error:");
return 1;
}
write(handle, msg, strlen(msg));
printf("The file pointer is at byte %ld\n", tell(handle));
close(handle);
return 0;
}


函数名: textattr
功 能: 设置文本属性
用 法: void textattr(int attribute);
程序例:

#i nclude .h>

int main(void)
{
int i;

clrscr();
for (i=0; i<9; i++)
{
textattr(i + ((i+1) << 4));
cprintf("This is a test\r\n");
}

return 0;
}


函数名: textbackground
功 能: 选择新的文本背景颜色
用 法: void textbackground(int color);
程序例:

#i nclude .h>

int main(void)
{
int i, j;

clrscr();
for (i=0; i<9; i++)
{
for (j=0; j<80; j++)
cprintf("C");
cprintf("\r\n");
textcolor(i+1);
textbackground(i);
}

return 0;
}

函数名: textcolor
功 能: 在文本模式中选择新的字符颜色
用 法: void textcolor(int color);
程序例:

#i nclude .h>

int main(void)
{
int i;

for (i=0; i<15; i++)
{
textcolor(i);
cprintf("Foreground Color\r\n");
}

return 0;
}

函数名: textheight
功 能: 返回以像素为单位的字符串高度
用 法: int far textheight(char far *textstring);
程序例:

#i nclude
#i nclude
#i nclude
#i nclude .h>.h>.h>.h>

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int y = 0;
int i;
char msg[80];

/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}

/* draw some text on the screen */
for (i=1; i<11; i++)
{
/* select the text style, direction, and size */
settextstyle(TRIPLEX_FONT, HORIZ_DIR, i);

/* create a message string */
sprintf(msg, "Size: %d", i);

/* output the message */
outtextxy(1, y, msg);

/* advance to the next text line */
y += textheight(msg);
}

/* clean up */
getch();
closegraph();
return 0;
}


函数名: textmode
功 能: 将屏幕设置成文本模式
用 法: void textmode(int mode);
程序例:

#i nclude .h>

int main(void)
{
textmode(BW40);
cprintf("ABC");
getch();

textmode(C40);
cprintf("ABC");
getch();

textmode(BW80);
cprintf("ABC");
getch();

textmode(C80);
cprintf("ABC");
getch();

textmode(MONO);
cprintf("ABC");
getch();

return 0;
}


函数名: textwidth
功 能: 返回以像素为单位的字符串宽度
用 法: int far textwidth(char far *textstring);
程序例:

#i nclude
#i nclude
#i nclude
#i nclude .h>.h>.h>.h>

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int x = 0, y = 0;
int i;
char msg[80];

/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}

y = getmaxy() / 2;

settextjustify(LEFT_TEXT, CENTER_TEXT);
for (i=1; i<11; i++)
{
/* select the text style, direction, and size */
settextstyle(TRIPLEX_FONT, HORIZ_DIR, i);

/* create a message string */
sprintf(msg, "Size: %d", i);

/* output the message */
outtextxy(x, y, msg);

/* advance to the end of the text */
x += textwidth(msg);
}

/* clean up */
getch();
closegraph();
return 0;
}

函数名: time
功 能: 取一天的时间
用 法: logn time(long *tloc);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

int main(void)
{
time_t t;

t = time(NULL);
printf("The number of seconds since January 1, 1970 is %ld",t);
return 0;
}


函数名: tmpfile
功 能: 以二进制方式打开暂存文件
用 法: FILE *tmpfile(void);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
FILE *tempfp;

tempfp = tmpfile();
if (tempfp)
printf("Temporary file created\n");
else
{
printf("Unable to create temporary file\n");
exit(1);
}

return 0;
}

函数名: tmpnam
功 能: 创建一个唯一的文件名
用 法: char *tmpnam(char *sptr);
程序例:

#i nclude .h>

int main(void)
{
char name[13];

tmpnam(name);
printf("Temporary name: %s\n", name);
return 0;
}

函数名: tolower
功 能: 把字符转换成小写字母
用 法: int tolower(int c);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

int main(void)
{
int length, i;
char *string = "THIS IS A STRING";

length = strlen(string);
for (i=0; i
{
string[i] = tolower(string[i]);
}
printf("%s\n",string); ;>

return 0;
}

函数名: toupper
功 能: 把字符转换成大写字母
用 法: int toupper(int c);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

int main(void)
{
int length, i;
char *string = "this is a string";

length = strlen(string);
for (i=0; i
{
string[i] = toupper(string[i]);
} ;>

printf("%s\n",string);

return 0;
}

函数名: tzset
功 能: UNIX时间兼容函数
用 法: void tzset(void);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

int main(void)
{
time_t td;

putenv("TZ=PST8PDT");
tzset();
time(&td);
printf("Current time = %s\n", asctime(localtime(&td)));
return 0;
}


函数名: ultoa
功 能: 转换一个无符号长整型数为字符串
用 法: char *ultoa(unsigned long value, char *string, int radix);
程序例:

#i nclude
#i nclude .h>.h>

int main( void )
{
unsigned long lnumber = 3123456789L;
char string[25];

ultoa(lnumber,string,10);
printf("string = %s unsigned long = %lu\n",string,lnumber);

return 0;
}

函数名: ungetc
功 能: 把一个字符退回到输入流中
用 法: int ungetc(char c, FILE *stream);
程序例:

#i nclude
#i nclude .h>.h>

int main( void )
{
int i=0;
char ch;

puts("Input an integer followed by a char:");

/* read chars until non digit or EOF */
while((ch = getchar()) != EOF && isdigit(ch))
i = 10 * i + ch - 48; /* convert ASCII into int value */

/* if non digit char was read, push it back into input buffer */
if (ch != EOF)
ungetc(ch, stdin);

printf("i = %d, next char in buffer = %c\n", i, getchar());
return 0;
}


函数名: ungetch
功 能: 把一个字符退回到键盘缓冲区中
用 法: int ungetch(int c);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

int main( void )
{
int i=0;
char ch;

puts("Input an integer followed by a char:");

/* read chars until non digit or EOF */
while((ch = getche()) != EOF && isdigit(ch))
i = 10 * i + ch - 48; /* convert ASCII into int value */

/* if non digit char was read, push it back into input buffer */
if (ch != EOF)
ungetch(ch);

printf("\n\ni = %d, next char in buffer = %c\n", i, getch());
return 0;
}

函数名: unixtodos
功 能: 把日期和时间转换成DOS格式
用 法: void unixtodos(long utime, struct date *dateptr,
struct time *timeptr);
程序例:

#i nclude
#i nclude .h>.h>

char *month[] = {"---", "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};

#define SECONDS_PER_DAY 86400L /* the number of seconds in one day */

struct date dt;
struct time tm;

int main(void)
{
unsigned long val;

/* get today's date and time */
getdate(&dt);
gettime(&tm);
printf("today is %d %s %d\n", dt.da_day, month[dt.da_mon], dt.da_year);

/* convert date and time to unix format (number of seconds since Jan 1, 1970 */
val = dostounix(&dt, &tm);
/* subtract 42 days worth of seconds */
val -= (SECONDS_PER_DAY * 42);

/* convert back to dos time and date */
unixtodos(val, &dt, &tm);
printf("42 days ago it was %d %s %d\n",
dt.da_day, month[dt.da_mon], dt.da_year);
return 0;
}

函数名: unlink
功 能: 删掉一个文件
用 法: int unlink(char *filename);
程序例:

#i nclude
#i nclude .h>.h>

int main(void)
{
FILE *fp = fopen("junk.jnk","w");
int status;

fprintf(fp,"junk");

status = access("junk.jnk",0);
if (status == 0)
printf("File exists\n");
else
printf("File doesn't exist\n");

fclose(fp);
unlink("junk.jnk");
status = access("junk.jnk",0);
if (status == 0)
printf("File exists\n");
else
printf("File doesn't exist\n");

return 0;
}

函数名: unlock
功 能: 解除文件共享锁
用 法: int unlock(int handle, long offset, long length);
程序例:

#i nclude
#i nclude
#i nclude
#i nclude
#i nclude
#i nclude .h>.h>.h>\stat.h>.h>.h>

int main(void)
{
int handle, status;
long length;

handle = sopen("c:\\autoexec.bat",O_RDONLY,SH_DENYNO,S_IREAD);

if (handle < 0)
{
printf("sopen failed\n");
exit(1);
}

length = filelength(handle);
status = lock(handle,0L,length/2);

if (status == 0)
printf("lock succeeded\n");
else
printf("lock failed\n");

status = unlock(handle,0L,length/2);

if (status == 0)
printf("unlock succeeded\n");
else
printf("unlock failed\n");

close(handle);
return 0;
}


函数名: vfprintf
功 能: 送格式化输出到一流中
用 法: int vfprintf(FILE *stream, char *format, va_list param);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

FILE *fp;

int vfpf(char *fmt, ...)
{
va_list argptr;
int cnt;

va_start(argptr, fmt);
cnt = vfprintf(fp, fmt, argptr);
va_end(argptr);

return(cnt);
}

int main(void)
{
int inumber = 30;
float fnumber = 90.0;
char string[4] = "abc";

fp = tmpfile();
if (fp == NULL)
{
perror("tmpfile() call");
exit(1);
}

vfpf("%d %f %s", inumber, fnumber, string);
rewind(fp);
fscanf(fp,"%d %f %s", &inumber, &fnumber, string);
printf("%d %f %s\n", inumber, fnumber, string);
fclose(fp);

return 0;
}

函数名: vfscanf
功 能: 从流中执行格式化输入
用 法: int vfscanf(FILE *stream, char *format, va_list param);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

FILE *fp;

int vfsf(char *fmt, ...)
{
va_list argptr;
int cnt;

va_start(argptr, fmt);
cnt = vfscanf(fp, fmt, argptr);
va_end(argptr);

return(cnt);
}

int main(void)
{
int inumber = 30;
float fnumber = 90.0;
char string[4] = "abc";

fp = tmpfile();
if (fp == NULL)
{
perror("tmpfile() call");
exit(1);
}
fprintf(fp,"%d %f %s\n",inumber,fnumber,string);
rewind(fp);

vfsf("%d %f %s",&inumber,&fnumber,string);
printf("%d %f %s\n",inumber,fnumber,string);
fclose(fp);

return 0;
}

函数名: vprintf
功 能: 送格式化输出到stdout中
用 法: int vprintf(char *format, va_list param);
程序例:

#i nclude
#i nclude .h>.h>

int vpf(char *fmt, ...)
{
va_list argptr;
int cnt;

va_start(argptr, format);
cnt = vprintf(fmt, argptr);
va_end(argptr);

return(cnt);
}

int main(void)
{
int inumber = 30;
float fnumber = 90.0;
char *string = "abc";

vpf("%d %f %s\n",inumber,fnumber,string);

return 0;
}

函数名: vscanf
功 能: 从stdin中执行格式化输入
用 法: int vscanf(char *format, va_list param);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

int vscnf(char *fmt, ...)
{
va_list argptr;
int cnt;

printf("Enter an integer, a float, and a string (e.g. i,f,s,)\n");
va_start(argptr, fmt);
cnt = vscanf(fmt, argptr);
va_end(argptr);

return(cnt);
}

int main(void)
{
int inumber;
float fnumber;
char string[80];

vscnf("%d, %f, %s", &inumber, &fnumber, string);
printf("%d %f %s\n", inumber, fnumber, string);

return 0;
}

函数名: vsprintf
功 能: 送格式化输出到串中
用 法: int vsprintf(char *string, char *format, va_list param);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

char buffer[80];

int vspf(char *fmt, ...)
{
va_list argptr;
int cnt;

va_start(argptr, fmt);
cnt = vsprintf(buffer, fmt, argptr);
va_end(argptr);

return(cnt);
}

int main(void)
{
int inumber = 30;
float fnumber = 90.0;
char string[4] = "abc";

vspf("%d %f %s", inumber, fnumber, string);
printf("%s\n", buffer);
return 0;
}

函数名: vsscanf
功 能: 从流中执行格式化输入
用 法: int vsscanf(char *s, char *format, va_list param);
程序例:

#i nclude
#i nclude
#i nclude .h>.h>.h>

char buffer[80] = "30 90.0 abc";

int vssf(char *fmt, ...)
{
va_list argptr;
int cnt;

fflush(stdin);

va_start(argptr, fmt);
cnt = vsscanf(buffer, fmt, argptr);
va_end(argptr);

return(cnt);
}

int main(void)
{
int inumber;
float fnumber;
char string[80];

vssf("%d %f %s", &inumber, &fnumber, string);
printf("%d %f %s\n", inumber, fnumber, string);
return 0;
}

函数名: wherex
功 能: 返回窗口内水平光标位置
用 法: int wherex(void);
程序例:

#i nclude .h>

int main(void)
{
clrscr();
gotoxy(10,10);
cprintf("Current location is X: %d Y: %d\r\n", wherex(), wherey());
getch();

return 0;
}


函数名: wherey
功 能: 返回窗口内垂直光标位置
用 法: int wherey(void);
程序例:

#i nclude .h>

int main(void)
{
clrscr();
gotoxy(10,10);
cprintf("Current location is X: %d Y: %d\r\n", wherex(), wherey());
getch();

return 0;
}

函数名: window
功 能: 定义活动文本模式窗口
用 法: void window(int left, int top, int right, int bottom);
程序例:

目录
相关文章
|
4天前
|
存储 编译器 C语言
C语言:字符函数 & 字符串函数 & 内存函数
C语言:字符函数 & 字符串函数 & 内存函数
11 2
|
6天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
24 5
|
7天前
|
机器学习/深度学习 算法 数据挖掘
【C 言专栏】C 语言与机器学习的应用
【5月更文挑战第6天】C语言在机器学习中扮演关键角色,以其高效性、灵活性和可移植性实现底层算法、嵌入式系统和高性能计算。在神经网络、决策树和聚类算法等领域的实现中不可或缺。C语言被用于TensorFlow和OpenCV等知名库的底层,常与C++、Python结合使用。尽管面临开发难度和适应新算法的挑战,但C语言在机器学习领域的价值和潜力将持续展现,为科技进步贡献力量。
【C 言专栏】C 语言与机器学习的应用
|
7天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
15 3
|
9天前
|
存储 缓存 算法
【C 言专栏】C 语言中的数据结构应用
【5月更文挑战第4天】本文探讨了C语言中的核心数据结构,包括数组、链表(单链表和双链表)、栈、队列、二叉树(如二叉搜索树和二叉堆)以及图结构。这些数据结构在程序设计中扮演着关键角色,如数组的快速访问、链表的动态管理、栈和队列的处理流程控制、树和图的复杂关系表示。理解并选择适当的数据结构可优化程序性能,而内存管理和算法优化则进一步提升效率。通过案例分析和展望未来发展趋势,本文旨在帮助读者深化对C语言数据结构的理解和应用。
【C 言专栏】C 语言中的数据结构应用
|
12天前
|
缓存 安全 编译器
【C 言专栏】C 语言函数的高效编程技巧
【5月更文挑战第1天】本文探讨了C语言中函数的高效编程技巧,包括函数的定义与作用(如代码复用和提高可读性)、设计原则(单一职责和接口简洁)、参数传递方式(值传递、指针传递和引用传递)、返回值管理、调用约定、嵌套与递归调用,以及函数优化技巧和常见错误避免。掌握这些技巧能提升C语言代码的质量和效率。
【C 言专栏】C 语言函数的高效编程技巧
|
12天前
|
机器学习/深度学习 算法 C语言
【C言专栏】递归算法在 C 语言中的应用
【4月更文挑战第30天】本文介绍了递归算法在C语言中的应用,包括基本概念(通过调用自身解决子问题)、特点(调用自身、终止条件、栈空间)和实现步骤(定义递归函数、分解问题、设置终止条件、组合解)。文中通过阶乘计算和斐波那契数列两个案例展示了递归的使用,强调了递归可能导致的栈溢出问题及优化需求。学习递归有助于理解和应用“分而治之”策略。
|
13天前
|
存储 算法 程序员
【C言专栏】C 语言结构体的应用与实践
【4月更文挑战第30天】C语言中的结构体是自定义数据类型的关键,它组合不同类型的數據以创建新类型,尤其适合处理复杂对象如学生信息。通过定义结构体如`struct Student`,包含名字、学号和成绩,可以方便地实例化和访问成员。结构体在链表实现、函数参数传递和数组中都有广泛应用,如表示链表节点和处理批量数据。理解并熟练运用结构体对于C语言编程至关重要,能提升代码效率和可读性。
|
C语言 图形学 数据格式
C语言库函数大全及应用实例一
[编程资料]C语言库函数大全及应用实例一 函数名: abort 功 能: 异常终止一个进程 用 法: void abort(void); 程序例: #i nclude #i nclude int main(void...
757 0
|
移动开发 图形学 C语言
C语言库函数大全及应用实例二
[编程资料]C语言库函数大全及应用实例二 函数名: bioskey 功 能: 直接使用BIOS服务的键盘接口 用 法: int bioskey(int cmd); 程序例: #i nclude #i...
627 0