c語言庫函數查詢
① c語言 用庫函數計算兩日期相差的天數
#include <stdio.h>
struct date
{
int year;
int month;
int day;
};
int main(void)
{
int isPrime(int year);
int dateDiff(struct date mindate,struct date maxdate);
struct date mindate,maxdate;
int days;
printf("please input the one date:");
scanf("%i-%i-%i",&mindate.year,&mindate.month,&mindate.day);
printf("please input other day:");
scanf("%i-%i-%i",&maxdate.year,&maxdate.month,&maxdate.day);
days=dateDiff(mindate,maxdate);
printf("the day is:%d\n",days);
return 0;
}
/************************************************************************/
/* 判斷閏年函數(4年一潤,100年不潤,400年再潤) */
/************************************************************************/
int isPrime(int year)
{
if ((year%4==0&&year%100!=0)||(year%400==0))
{
return 1;
}
else
{
return 0;
}
}
int dateDiff(struct date mindate,struct date maxdate)
{
int days=0, flag=1;
const int primeMonth[12]={31,29,31,30,31,30,31,31,30,31,30,31};
const int notPrimeMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
/************************************************************************/
/* 交換兩個日期函數,將小的日期給mindate,將大的日期給maxdate */
/************************************************************************/
struct date tmp;
if ((mindate.year>maxdate.year)|| (mindate.year==maxdate.year&&mindate.month>maxdate.month)||(mindate.year==maxdate.year&&mindate.month==maxdate.month&&mindate.day>maxdate.day))
{
tmp=mindate;
mindate=maxdate;
maxdate=tmp;
}
int maxmonth,minmonth;
/************************************************************************/
/* 主要思路:拿2002-8-8 2005-2-22來說 */
/* 將2004-8-8---2005-2-22----2005-7-8 */
/*一前一後剛好N年,算出2005-2-22到2005-7-8的天數,然後用總年*36(5|6)減掉) */
/* 2002-9-8 2005-11-22 */
/* 2002-9-8-----2005-9-8-----2005-11-22(這次是加上後面天數) */
/*如何判斷是加還是減呢?年大而月小的,則是減,程序中用flag標示 */
/************************************************************************/
if (maxdate.month<mindate.month)
{
maxmonth=mindate.month;
minmonth=maxdate.month;
flag=-1;
}
else
{
maxmonth=maxdate.month;
minmonth=mindate.month;
flag=1;
}
/************************************************************************/
/* 從mindate.year開始累加到maxdate.year */
/************************************************************************/
for(int j=mindate.year;j<maxdate.year;++j)
{
if (isPrime(j)==1)
{
days+=366;
}
else
days+=365;
}
/************************************************************************/
/* 從minmonth累加到maxmonth,分閏年和平年 */
/************************************************************************/
int day;
if(isPrime(maxdate.year)==1)
{
for(int i=minmonth;i<maxmonth;i++)
{
day=primeMonth[i-1]*flag;
days=days+day;
}
days=days+maxdate.day-mindate.day;
}
else
{
for (int i=minmonth;i<maxmonth;i++)
{
day=notPrimeMonth[i-1]*flag;
days=days+day;
}
days=days+maxdate.day-mindate.day;
}
return days;
}
② C語言中對字元串進行操作的標准庫函數有哪些
1)字元串操作
strcpy(p, p1) 復制字元串
strncpy(p, p1, n) 復制指定長度字元串
strcat(p, p1) 附加字元串
strncat(p, p1, n) 附加指定長度字元串
strlen(p) 取字元串長度
strcmp(p, p1) 比較字元串
strcasecmp忽略大小寫比較字元串
strncmp(p, p1, n) 比較指定長度字元串
strchr(p, c) 在字元串中查找指定字元
strrchr(p, c) 在字元串中反向查找
strstr(p, p1) 查找字元串
strpbrk(p, p1) 以目標字元串的所有字元作為集合,在當前字元串查找該集合的任一元素
strspn(p, p1) 以目標字元串的所有字元作為集合,在當前字元串查找不屬於該集合的任一元素的偏移
strcspn(p, p1) 以目標字元串的所有字元作為集合,在當前字元串查找屬於該集合的任一元素的偏移
* 具有指定長度的字元串處理函數在已處理的字元串之後填補零結尾符
2)字元串到數值類型的轉換
strtod(p, ppend) 從字元串 p 中轉換 double 類型數值,並將後續的字元串指針存儲到 ppend 指向的 char* 類型存儲。
strtol(p, ppend, base) 從字元串 p 中轉換 long 類型整型數值,base 顯式設置轉換的整型進制,設置為 0 以根據特定格式判斷所用進制,0x, 0X 前綴以解釋為十六進制格式整型,0 前綴以解釋為八進制格式整型
atoi(p) 字元串轉換到 int 整型
atof(p) 字元串轉換到 double 符點數
atol(p) 字元串轉換到 long 整型
3)字元檢查
isalpha() 檢查是否為字母字元
isupper() 檢查是否為大寫字母字元
islower() 檢查是否為小寫字母字元
isdigit() 檢查是否為數字
isxdigit() 檢查是否為十六進制數字表示的有效字元
isspace() 檢查是否為空格類型字元
iscntrl() 檢查是否為控制字元
ispunct() 檢查是否為標點符號
isalnum() 檢查是否為字母和數字
isprint() 檢查是否是可列印字元
isgraph() 檢查是否是圖形字元,等效於 isalnum() | ispunct()
③ C語言庫函數源代碼在哪裡有看
有安裝vs2008或2010嗎,在安裝目錄下面的VC/src中自帶有源代碼。比如我的就在
D:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src中。沒有的話發給你
④ c語言的圖形函數庫有哪些
圖形和圖像函數包含在graphics.h裡面(一) 像素函數56. putpiel() 畫像素點函數57. getpixel()返回像素色函數(二) 直線和線型函數58. line() 畫線函數59. lineto() 畫線函數60. linerel() 相對畫線函數61. setlinestyle() 設置線型函數62. getlinesettings() 獲取線型設置函數63. setwritemode() 設置畫線模式函數(三)、多邊形函數64. rectangle() 畫矩形函數65. bar() 畫條函數66. bar3d() 畫條塊函數67. drawpoly() 畫多邊形函數(四)、 圓、弧和曲線函數68. getaspectratio()獲取縱橫比函數69. circle()畫圓函數70. arc() 畫圓弧函數71. ellipse()畫橢圓弧函數72. fillellipse() 畫橢圓區函數73. pieslice() 畫扇區函數74. sector() 畫橢圓扇區函數75. getarccoords()獲取圓弧坐標函數(五)、 填充函數76. setfillstyle() 設置填充圖樣和顏色函數77. setfillpattern() 設置用戶圖樣函數78. floodfill() 填充閉域函數79. fillpoly() 填充多邊形函數80. getfillsettings() 獲取填充設置函數81. getfillpattern() 獲取用戶圖樣設置函數(六)、圖像函數82. imagesize() 圖像存儲大小函數83. getimage() 保存圖像函數84. putimage() 輸出圖像函數四、圖形和圖像函數對許多圖形應用程序,直線和曲線是非常有用的。但對有些圖形只能靠操作單個像素才能畫出。當然如果沒有畫像素的功能,就無法操作直線和曲線的函數。而且通過大規模使用像素功能,整個圖形就可以保存、寫、擦除和與屏幕上的原有圖形進行疊加。(一) 像素函數56. putpixel() 畫像素點函數功能: 函數putpixel() 在圖形模式下屏幕上畫一個像素點。用法: 函數調用方式為void putpixel(int x,int y,int color);說明: 參數x,y為像素點的坐標,color是該像素點的顏色,它可以是顏色符號名,也可以是整型色彩值。此函數相應的頭文件是graphics.h返回值: 無例: 在屏幕上(6,8)處畫一個紅色像素點:putpixel(6,8,RED);57. getpixel()返回像素色函數功能: 函數getpixel()返回像素點顏色值。用法: 該函數調用方式為int getpixel(int x,int y);說明: 參數x,y為像素點坐標。函數的返回值可以不反映實際彩色值,這取決於調色板的設置情況(參見setpalette()函數)。這個函數相應的頭文件為graphics.h返回值: 返回一個像素點色彩值。例: 把屏幕上(8,6)點的像素顏色值賦給變數color。color=getpixel(8,6);
⑤ c語言數學庫函數有哪些
C語言標准庫提供了數學函數,位於<math.h>頭文件。常用的數學庫函數如下:
三角函數包括:sin(x)計算x的正弦值;cos(x)計算x的餘弦值;tan(x)計算x的正切值;asin(x)計算x的反正弦值;acos(x)計算x的反餘弦值;atan(x)計算x的反正切值。
冪和對數函數包括:pow(x, y)計算x的y次冪;sqrt(x)計算x的平方根;log(x)計算x的自然對數;log10(x)計算x的常用對數。
指數和對數函數包括:exp(x)計算e的x次冪;logb(x)計算x的基數對數。
特殊函數包括:erf(x)計算誤差函數;gamma(x)計算伽瑪函數。
數學常數包括:M_PI表示圓周率π的近似值;M_E表示自然對數的底數e的近似值。
其他函數包括:abs(x)計算x的絕對值;fabs(x)計算浮點數x的絕對值;floor(x)將x向下取整到最接近的整數;ceil(x)將x向上取整到最接近的整數;modf(x, &intPart)將x分解為整數部分和小數部分。
這些數學庫函數提供了豐富的數學運算功能,根據需要選擇使用。使用時需包含<math.h>頭文件,並在編譯時鏈接數學庫(通過添加-lm選項)。