c语言常用函数大全
发布日期:2018-04-25摘要: 1、 MessageBoxA(0, "网络故障,重新登录 ", "qqerror ",3); 弹出对话框 2、 ShellExecuteA(0, "open ", "notepad ",0,0,6);...
1、//MessageBoxA(0,"网络故障,重新登录","qqerror",3);//弹出对话框
2、//ShellExecuteA(0,"open","notepad",0,0,6);//执行指令notepad可以指定网址
3、//malloc(100000);//吃内存,铲食
//Sleep(100);
4、获取当前时间并打印
方法一:
SYSTEMTIMEtt;
GetLocalTime(&tt);
printf("%2d:%2d:%2d.%3d",tt.wHour,tt.wMinute,tt.wSecond,tt.wMilliseconds);
方法二:
time_ttt;
//localtime(&tt);//此函数不行
time(&tt);//获取当前系统的时间
printf("Today'sdateandtime:%s\n",ctime(&tt));//把日期和时间转换为字符串
方法三:
time_ttimer=time(NULL);
structtm*tblock=localtime(&timer);//把日期与时间转变为结构
printf("Localtimeis:%s",asctime(tblock));//格式化时间
5、转换日期和时间为ASCII码
charstr[80];
structtmt;
t.tm_sec=1;
t.tm_min=30;
t.tm_hour=9;
t.tm_mday=22;
t.tm_mon=11;
t.tm_year=56;
t.tm_wday=4;
t.tm_yday=0;
t.tm_isdst=0;
strcpy(str,asctime(&t));
printf("%s\n",str);
6、测试一个条件并可能使得程序终止
#include<Windows.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<time.h>
#include<assert.h>
structITEM
{
intkey;
intvalue;
};
voidadditem(structITEM*itemptr)
{
assert(itemptr!=NULL);
}
intmain()
{
//structITEMit;
//it.key=3;
//it.value=4;
additem(NULL);
return0;//neverreachhere
}
程序执行后:(断言错误)
7、把字符串转换为浮点数
方法一:利用atof函数。类似的还有:atoiatoll;
floatf=0;
char*str="1234.5678";
f=atof(str);
printf("%f\n",f);
方法二:利用sstream头文件转换。
std::stringstr="1234.5678";
//stringstreamss;
//ss<<str;
stringstreamss(str);
doubledd=0;
ss>>dd;
printf("%lf\n",dd);
8、分配主存储器
char*str=NULL;
str=(char*)calloc(10,sizeof(char));
strcpy(str,"hello");
puts(str);
9、向上向下取整
doublemm=123.54;
doubledown=floor(mm);
printf("%lf\n",down);//123.0000向下取整
doubleup=ceil(mm);
printf("%lf\n",up);//124.0000向上取整
10、改变文件大小
inthandle;
charbuf[11]="0123456789";
handle=open("DUMMY.FIL",O_CREAT);
write(handle,buf,strlen(buf));
chsize(handle,5);
close(handle);
11、确定时间
clock_tstart,end;
start=clock();
Sleep(1000);
end=clock();
printf("%d\n",end-start);
12、送格式化输出至屏幕
cprintf("helloworld\r\n");
13、终止程序
exit(1);
14、返回浮点数的绝对值
fabs(f);==abs();
15、检测流上的结束
FILE*fp;
fp=fopen("a.txt","r");
fgetc(fp);
if(feof(fp))//检测流上的文件结束符
{
printf("wehavereachedendoffile");
}
fclose(fp);
16、清除一个流
fflush();
17、从流中读取字符
fgetc()、fgetchar();
18、传送格式化输出到一个流中
Fprintf();一般作用于字节流而非二进制流。
19、返回当前文件指针
FILE*fp;
fp=fopen("a.txt","w+");
fprintf(fp,"thisisatest");
printf("thefileptrisatbyte%ld\n",ftell(fp));//值为14
fclose(fp);
20、重定位流上的文件指针
longfilesize(FILE*fp)
{
longcurpos,length;
curpos=ftell(fp);
fseek(fp,0L,SEEK_END);
length=ftell(fp);
fseek(fp,curpos,SEEK_SET);
returnlength;
}
intmain()
{
FILE*fp;
fp=fopen("a.txt","w+");
fprintf(fp,"thisisatest");
printf("filesizeofa.txtis%ldbytes\n",filesize(fp));
fclose(fp);
return0;
}
21、常见的函数有
gets();从流中取一字符串
intnumber=12345;
charstr[25];
itoa(number,str,10);//把一个整数转换为字符串
printf("int:êo%d,string:êo%s",number,str);
log();//对数函数
22、内存分配函数
Malloc();//申请内存
Memcpy(void*destin,void*source,unsignedn);//从源中拷贝n个字节到目标中。
23、移动一块字节
chardest[]="ajdlajlgjalgjlajgafdlajgflajgljaljglajglajglajglaj";
charsrc[]="******************************************";
puts(dest);
memmove(dest,src,sizeof(src));//将src移动到dest上输出就是上面的输出
puts(dest);
24、清零函数
memset();
指数函数pow(doublex,doubley);//x的y次方
putch(intch);//输出字符到控制台
putc(intch,file*stream);//输出字符到指定的流中
puts(char*string);//送一字符串到流中
25、随机数生成器
两个函数的使用:srand(seed);rand();
如果只用一个函数rand,则每次一开始产生的数字一样。没有随机数的意思。
srand(time(NULL));
printf("tenrandomnumbers0-99:\n");
for(inti=0;i<10;++i)
{
printf("%d",rand()%100);
}
printf("\n");
26、重新分配主存
char*str=(char*)malloc(10*sizeof(char));
chara[]="hello";
memcpy(str,a,sizeof(a));
printf("stringis%s\nAddressis%p\n",str,str);
str=(char*)realloc(str,20*sizeof(char));
printf("stringis%s\nAddressis%p\n",str,str);
27、小函数
睡眠函数sleep(unsignedseconds);
送格式化输出到字符串intsprint(char*string,char*format[,argument,….]);
charbuf[80];
char*str="yujinli";
sprintf(buf,"Ilove%s",str);
puts(buf);
计算平方根doublesqrt(doublex);
28、关于激光字符串的处理函数
串拷贝strcpy();
charstr1[]="dfaljgalg";
charstr2[20];
strcpy(str2,str1);//这里str2不能为指针,不然会出错,最好是数组。
puts(str2);
串连接strcat();
charstr1[30]="Ilove";
charstr2[]="yujinli";
strcat(str1,str2);//这里连接到str1后面,把str1数组搞大点,不能为str[],这样长度就不够了。
puts(str1);
串比较strcmp();
返回三个值-1a<b0a=b1a>b
charstr1[]="Iloveme";
charstr2[]="Iloveme";
intp=strcmp(str1,str2);
printf("%d\n",p);
在串中查找指定字符串的第一次出现
char*str1="BorlandInternational",*str2="nation",*ptr;
ptr=strstr(str1,str2);
printf("Thesubstringis:%s\n",ptr);//输出:national
将字符串转换为double型值doublestrtod(char*str,char**endptr);
char*input="12345.6789",**endptr=NULL;
doublevalue;
value=strtod(input,endptr);
printf("thestringis%sthenumberis%lf\n",input,value);
类似的还有:longstrtol(char*str,char**endptr,intbase);//base==10,则转为为10进制数。将串转为长整型。
发送一个dos命令:intsystem(char*str);
交换字节:voidswab(char*from,char*to,intnbyte);
charfrom[]="dlajglg";
charto[20];
swab(from,to,sizeof(from));
puts(to);
将串中小写转大写char*strupr(char*str);
29、正切
Doubletan(doublex);
30、取一天的时间time();
31、将字符转成大小写
charstr[]="DJALJGLAJGALGJ";
for(inti=0;i<strlen(str);++i)
{
str[i]=tolower(str[i]);
}
puts(str);
for(inti=0;i<strlen(str);++i)
{
str[i]=toupper(str[i]);
}
puts(str);
32、将一个无符号长整型转为字符串
char*ultoa(unsignedlongvalue,char*string,intradix);//radix是进制的意思
-
给我们打电话
7*24小时服务热线:1399999999
全国客服热线:400-0000-000 -
百度地图
福建省漳州市 -
给我们发邮件
E-mail:[email protected]
在线沟通