几个小函数

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语言常用函数举例的更多相关文章

  1. windows 下编程实现打印日志

    下面是在windows下编程实现的日志打印,写的比较简单,可以根据实际情况进行修改使用. 宏WRITELOG在vs2013可以正常使用. 在vs2003和vs2010可能会报错,可以直接使用myLog ...

  2. 【R】R语言常用函数

    R语言常用函数 基本 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量character:字符型向量 list:列表 data.frame:数据框c:连接为向量或 ...

  3. Windows下编程--模拟时钟的实现

    windows下编程--模拟时钟的实现: 主要可以分为几个步骤: (1)   编写按键事件处理(启动和停止时钟) (2)   编写时钟事件处理,调用显示时钟函数 (3)   编写显示时钟函数,要调用显 ...

  4. windows下docker的安装及常用命令学习

    docker search 镜像名 本文主要介绍Docker在Windows下的安装.关于Docker的介绍和文档在其官网中可以找到:http://www.docker.com .安装环境:Windo ...

  5. VBS脚本编程(3)——常用函数

    数据类型转换函数 1.Hex 函数 返回表示十六进制数字值的字符串. Hex(number) number 参数是任意有效的表达式. 说明 如果 number 参数不是整数,则在进行运算前将其四舍五入 ...

  6. linux和windows下,C/C++的sleep函数

    简介: 函数名: sleep   功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   在VC中使用带上头文件   #include < ...

  7. PHP 在windows下配置sendmail,通过 mail() 函数发送邮件

    php mail()函数在windows不能用,需要安装sendmail. 1. 从http://glob.com.au下载sendmail.zip 2. 解压sendmail.zip到目录下(最好使 ...

  8. go语言常用函数:make

    创建数组切片 Go语言提供的内置函数make()可以用于灵活地创建数组切片.创建一个初始元素个数为5的数组切片,元素初始值为0: mySlice1 := make([]int, 5) 创建一个初始元素 ...

  9. [C/C++基础] C语言常用函数memset的使用方法

    函数声明:void *memset(void *s, int ch, size_t n); 用途:为一段内存的每一个字节都赋予ch所代表的值,该值采用ASCII编码. 所属函数库:<memory ...

随机推荐

  1. SDOJ 1195 Zhenhuan

    描述 今日又在看甄嬛传,皇上觉得后宫们的勾心斗角太险恶了,有点不好,决定给每个妃子发丝带以让后宫之间和睦相处.皇上一共有N个后宫(标号为1~n),站成一个环形(1号与n号相邻),每个后宫想要ai个丝带 ...

  2. 聊聊、Nginx GDB与MAIN参数

    接着上一篇,我们学习 Nginx 的 main 方法.用 gdb 工具调试 Nginx,首先 gdb nginx.如下: gdb 调试工具有很多的命令,上一篇为了找 main 方法用了 b 命令,也就 ...

  3. Linux Shell系列教程之(六)Shell数组

    本文是Linux Shell系列教程的第(六)篇,更多shell教程请看:Linux Shell系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,今天就为大家介绍下Shell数组的用法. ...

  4. iOS-----openGL--openGL ES iOS 入门篇--->搭建openGL环境

    OpenGL版本 iOS系统默认支持OpenGl ES1.0.ES2.0以及ES3.0 3个版本,三者之间并不是简单的版本升级,设计理念甚至完全不同,在开发OpenGL项目前,需要根据业务需求选择合适 ...

  5. 【bzoj4407】于神之怒加强版 莫比乌斯反演+线性筛

    题目描述 给下N,M,K.求 输入 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. 输出 如题 ...

  6. Codeforces Round #345 (Div. 2)——A. Joysticks(模拟+特判)

    A. Joysticks time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  7. Github管理 第二步:Eclipse+Github,管理Java Project版本(First Commit)

    1.提醒 如果你的Eclipse和本文一样操作,却出现了不同的结果和莫名其妙的错误,换个Eclipse也许更快. 我用了2个Eclipse,第一个一步一个坑,第2个非常顺利…… 所以,继Windows ...

  8. Java面试题之继承、组合、聚合有什么区别

    继承:他是is-a的关系,指一个类继承另外一个类的功能 例如:public class A extends B { } 聚合:他是has-a 例如:public class A{ List<B& ...

  9. 【前端学习笔记】2015-09-02~~~~ 关于filter()匹配的使用

    关于filter的使用先记录以下几点: 1.filter(':even')遍历所有元素,找到index为偶数的元素.. ps: filter(':odd')       odd----奇数   eve ...

  10. 2018.8.7 Noip2018模拟测试赛(二十)

    日期: 八月七号  总分: 300分  难度: 提高 ~ 省选    得分: 100分(呵呵一笑) 题目列表: T1:SS T2:Tree Game T3:二元运算 赛后反思: Emmmmmm…… 开 ...