Windows下编程2----- C语言常用函数举例
几个小函数
1、 //MessageBoxA(0,"网络故障,重新登录","qq error",3); //弹出对话框
2、 //ShellExecuteA(0,"open","notepad",0,0,6); //执行指令 notepad可以指定网址
3、 //malloc(100000);//吃内存,铲食
//Sleep(100);
4、获取当前时间并打印
方法一:
SYSTEMTIME tt;
GetLocalTime(&tt);
printf("%2d:%2d:%2d.%3d",tt.wHour,tt.wMinute,tt.wSecond,tt.wMilliseconds);
方法二:
time_t tt;
//localtime(&tt);//此函数不行
time(&tt);//获取当前系统的时间
printf("Today's date and time: %s\n",ctime(&tt));//把日期和时间转换为字符串
方法三:
time_t timer = time(NULL);
struct tm *tblock = localtime(&timer); //把日期与时间转变为结构
printf("Local time is : %s",asctime(tblock));//格式化时间
5、转换日期和时间为ASCII码
char str[80];
struct tm t;
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>
struct ITEM
{
int key;
int value;
};
void additem(struct ITEM *itemptr)
{
assert(itemptr != NULL);
}
int main()
{
//struct ITEM it;
//it.key = 3;
//it.value = 4;
additem(NULL);
return 0; //never reach here
}
程序执行后:(断言错误)
7、把字符串转换为浮点数
方法一:利用 atof函数。类似的还有:atoi atoll;
float f = 0;
char *str = "1234.5678";
f = atof(str);
printf("%f\n",f);
方法二:利用sstream头文件转换。
std::string str = "1234.5678";
//stringstream ss;
//ss << str;
stringstream ss(str);
double dd = 0;
ss >> dd;
printf("%lf\n",dd);
8、分配主存储器
char *str = NULL;
str = (char*)calloc(10,sizeof(char));
strcpy(str,"hello");
puts(str);
9、 向上向下取整
double mm = 123.54;
double down = floor(mm);
printf("%lf\n",down); //123.0000 向下取整
double up = ceil(mm);
printf("%lf\n",up); //124.0000 向上取整
10、改变文件大小
int handle;
char buf[11] = "0123456789";
handle = open("DUMMY.FIL",O_CREAT);
write(handle,buf,strlen(buf));
chsize(handle,5);
close(handle);
11、确定时间
clock_t start,end;
start = clock();
Sleep(1000);
end = clock();
printf("%d\n",end - start);
12、送格式化输出至屏幕
cprintf("hello world\r\n");
13、终止程序
exit(1);
14、返回浮点数的绝对值
fabs(f); == abs();
15、检测流上的 结束
FILE *fp;
fp = fopen("a.txt","r");
fgetc(fp);
if(feof(fp))//检测流上的文件结束符
{
printf("we have reached end of file");
}
fclose(fp);
16、清除一个流
fflush();
17、从流中读取字符
fgetc()、fgetchar();
18、传送格式化输出到一个流中
Fprintf(); 一般作用于 字节流 而非二进制流。
19、返回当前文件指针
FILE *fp;
fp = fopen("a.txt","w+");
fprintf(fp,"this is a test");
printf("the file ptr is at byte %ld \n",ftell(fp)); //值为14
fclose(fp);
20、重定位流上的文件指针
long filesize(FILE *fp)
{
long curpos,length;
curpos = ftell(fp);
fseek(fp,0L,SEEK_END);
length = ftell(fp);
fseek(fp,curpos,SEEK_SET);
return length;
}
int main()
{
FILE *fp;
fp = fopen("a.txt","w+");
fprintf(fp,"this is a test");
printf("filesize of a.txt is %ld bytes\n",filesize(fp));
fclose(fp);
return 0;
}
21、常见的函数有
gets(); 从流中取一字符串
int number = 12345;
char str[25];
itoa(number,str,10); //把一个整数转换为字符串
printf("int:êo %d, string:êo %s",number,str);
log(); //对数函数
22、内存分配函数
Malloc();//申请内存
Memcpy(void* destin, void*source,unsigned n);//从源 中拷贝 n个字节到目标 中。
23、移动一块字节
char dest[] = "ajdlajlgjalgjlajgafdlajgflajgljaljglajglajglajglaj";
char src[] = "******************************************";
puts(dest);
memmove(dest,src,sizeof(src));//将src移动到dest上
输出就是上面的输出
puts(dest);
24、清零函数
memset();
指数函数 pow(double x, double y); //x的y次方
putch(int ch); //输出字符到控制台
putc(int ch, file *stream);//输出字符到指定的流中
puts(char *string);//送一字符串到流中
25、随机数生成器
两个函数的使用: srand(seed); rand();
如果只用一个函数rand,则每次一开始产生的数字一样。没有随机数的意思。
srand(time(NULL));
printf("ten random numbers 0-99: \n");
for(int i = 0; i < 10; ++i)
{
printf("%d ",rand()%100);
}
printf("\n");
26、重新分配主存
char* str = (char*)malloc(10*sizeof(char));
char a[] = "hello";
memcpy(str,a,sizeof(a));
printf("string is %s\n Address is %p\n",str,str);
str = (char*)realloc(str,20*sizeof(char));
printf("string is %s\n Address is %p\n",str,str);
27、小函数
睡眠函数 sleep(unsigned seconds);
送格式化输出到字符串int sprint(char* string, char *format [,argument,….]);
char buf[80];
char *str = "yujinli";
sprintf(buf,"I love %s",str);
puts(buf);
计算平方根 double sqrt(double x);
28、关于激光字符串的处理函数
串拷贝 strcpy();
char str1[] = "dfaljgalg";
char str2[20];
strcpy(str2,str1); //这里str2不能为指针,不然会出错,最好是数组。
puts(str2);
串连接 strcat();
char str1[30] = "I love ";
char str2[] = "yujinli";
strcat(str1,str2);// 这里连接到str1后面,把str1数组搞大点,不能为str[],这样长度就不够了。
puts(str1);
串比较 strcmp();
返回三个值 -1 a<b 0 a=b 1 a>b
char str1[] = "I love me";
char str2[] = "I love me";
int p = strcmp(str1,str2);
printf("%d \n",p);
在串中查找指定字符串的第一次出现
char *str1 = "Borland International", *str2 = "nation", *ptr;
ptr = strstr(str1, str2);
printf("The substring is: %s\n", ptr); //输出: national
将字符串转换为double型值 double strtod(char *str, char** endptr);
char *input = "12345.6789",**endptr = NULL;
double value;
value = strtod(input,endptr);
printf("the string is %s the number is %lf \n",input,value);
类似的还有: long strtol(char* str, char** endptr, int base); // base == 10,则转为为10进制数。 将串转为长整型。
发送一个dos命令:int system(char* str);
交换字节:void swab(char* from, char*to, int nbyte);
char from[] = "dlajglg";
char to[20];
swab(from,to,sizeof(from));
puts(to);
将串中小写转大写 char* strupr(char* str);
29、正切
Double tan(double x);
30、取一天的时间 time();
31、将字符转成大小写
char str[] = "DJALJGLAJGALGJ";
for(int i = 0; i < strlen(str); ++i)
{
str[i] = tolower(str[i]);
}
puts(str);
for(int i = 0; i < strlen(str); ++i)
{
str[i] = toupper(str[i]);
}
puts(str);
32、将一个无符号长整型转为字符串
char* ultoa(unsigned long value, char* string, int radix);//radix 是进制的意思
Windows下编程2----- C语言常用函数举例的更多相关文章
- windows 下编程实现打印日志
下面是在windows下编程实现的日志打印,写的比较简单,可以根据实际情况进行修改使用. 宏WRITELOG在vs2013可以正常使用. 在vs2003和vs2010可能会报错,可以直接使用myLog ...
- 【R】R语言常用函数
R语言常用函数 基本 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量character:字符型向量 list:列表 data.frame:数据框c:连接为向量或 ...
- Windows下编程--模拟时钟的实现
windows下编程--模拟时钟的实现: 主要可以分为几个步骤: (1) 编写按键事件处理(启动和停止时钟) (2) 编写时钟事件处理,调用显示时钟函数 (3) 编写显示时钟函数,要调用显 ...
- windows下docker的安装及常用命令学习
docker search 镜像名 本文主要介绍Docker在Windows下的安装.关于Docker的介绍和文档在其官网中可以找到:http://www.docker.com .安装环境:Windo ...
- VBS脚本编程(3)——常用函数
数据类型转换函数 1.Hex 函数 返回表示十六进制数字值的字符串. Hex(number) number 参数是任意有效的表达式. 说明 如果 number 参数不是整数,则在进行运算前将其四舍五入 ...
- linux和windows下,C/C++的sleep函数
简介: 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 在VC中使用带上头文件 #include < ...
- PHP 在windows下配置sendmail,通过 mail() 函数发送邮件
php mail()函数在windows不能用,需要安装sendmail. 1. 从http://glob.com.au下载sendmail.zip 2. 解压sendmail.zip到目录下(最好使 ...
- go语言常用函数:make
创建数组切片 Go语言提供的内置函数make()可以用于灵活地创建数组切片.创建一个初始元素个数为5的数组切片,元素初始值为0: mySlice1 := make([]int, 5) 创建一个初始元素 ...
- [C/C++基础] C语言常用函数memset的使用方法
函数声明:void *memset(void *s, int ch, size_t n); 用途:为一段内存的每一个字节都赋予ch所代表的值,该值采用ASCII编码. 所属函数库:<memory ...
随机推荐
- [转]查看Linux版本信息
一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [root@S-CentOS home]# cat /proc/version Linux version 2.6 ...
- springmvc始终跳转至首页,不报404错误
本篇博客特别补充:2017-3-4 9:42,经过分析和测试,本篇博客的解决方案只是碰巧,暂时的解决了问题.在后续的运行中,又出现了同样的毛病.经过日志跟踪,发现了端倪,下篇博客深入的剖析!本篇博客, ...
- OA笔记
一:Asp.Net MVC请求处理原理(Asp.Net mvc 是怎样进入请求管道的.)请求-->IIS--->ISAPIRuntime-->HttpWorkRequest--> ...
- 学习 JSP:第三步 JSP基础(未完)
因为之前学过也用过JSP,这里只列出笔记,初学者请移步其他教程. JSP隐含对象 JSP支持九个自动定义的变量,江湖人称隐含对象.这九个隐含对象的简介见下表: 对象 描述 request HttpSe ...
- java面试题之哨兵如何判断主服务器是否下线?
通过流言协议来接收关于主服务器是否下线的信息,并使用投票协议来决定是否执行自动故障迁移,以及选择哪个从服务器作为新的主服务器.
- python 面向对象与类的基本知识
一 什么是面向对象,面向对象与类的关系. 面向对象的程序设计是用来解决扩展性. 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象 ...
- scrapy怎么设置带有密码的代理ip base64.encodestring不能用 python3.5,base64库里面的encodestring()被换成了什么?
自己写爬虫时买的代理ip有密码,在网上查了都是下面这种: 1.在Scrapy工程下新建"middlewares.py": import base64 # Start your mi ...
- hdu 6108 小C的倍数问题
小C的倍数问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- UVa11424 GCD - Extreme (I)
直接两重循环O(n^2)算gcd……未免太耗时 枚举因数a和a的倍数n,考虑gcd(i,n)==a的i数量(i<=n) 由于gcd(i,n)==a等价于gcd(i/a,n/a)==1,所以满足g ...
- 共享内存之——system V共享内存
System V 的IPC对象有共享内存.消息队列.信号灯(量). 注意:在IPC的通信模式下,不管是共享内存.消息队列还是信号灯,每个IPC的对象都有唯一的名字,称为"键(key)&quo ...