【C語言】用可變引數列表實現printf函式
//用可變引數列表實現printf函式 #include <stdio.h> #include <stdarg.h> void my_printf(const char *str,...) { va_list fun; va_start (fun,str); while(*str!=0) { if(*str=='c') { putchar(va_arg(fun,char )); } if(*str=='s') { puts(va_arg(fun,char *)); } str++; } va_end(fun); } int main () { my_printf("ccss",'a','j',"sas","awdaf"); return 0; }
相關推薦
【C語言】用可變引數列表實現printf函式
//用可變引數列表實現printf函式 #include <stdio.h> #include <stdarg.h> void my_printf(const char *st
【c語言】用可變引數列表實現一個簡化的printf函式
//實現一個簡化的printf函式。 #include <stdarg.h> #include <string.h> void my_printf(const char *str,...) { va_list arg; //準備訪問可變引
【C語言】使用可變引數,實現函式,求函式引數的最大值。
求若干個引數的最大值,我們假定第一個可變引數為最大值,定義為max,將之後的每一個可變引數和第一個可變引數相比較,始終在max裡存放的是最大值。 但是這裡需要注意,每一次呼叫va_arg,都會指向下一個可變引數,因此我們需要將其值儲存在臨時變數裡,以防指向錯誤。 #includ
【c語言】用迴圈結構輸出下列數字金字塔
#include<stdio.h> void main(){ int i,j,k; for(i=1;i<=10;i++){ for(j=10;j>i;j--) printf(" "); for(k=1;k<=(2*i-1)/2
【C語言】用結構體陣列指標完成:有三個學生資訊,存放在結構體陣列中,要求輸出全部資訊
//用結構體陣列指標完成:有三個學生資訊,存放在結構體陣列中,要求輸出全部資訊 #include <stdio.h> struct Stu { int num; char name[2
C語言中的可變引數列表
還記得剛學C語言時,第一個程式就是使用printf列印“hello world!”,當時覺得很神奇,後來慢慢覺得是最簡單的,可漸漸熟悉之後發現,我們寫的函式的引數都是固定的,而發現printf的引數居然是不定的,不知道有沒有去研究過這個問題呢。其實這就是C語言中
【C語言】用結構體陣列完成:有5個學生(包括學號,姓名,成績),要求按照成績高低輸出學生資訊.
//用結構體陣列完成:有5個學生(包括學號,姓名,成績),要求按照成績高低輸出學生資訊 #include <stdio.h> struct Stu { int num; char na
【c語言】用π/4 ≈ 1
// 用π/4 ≈ 1 - 1/3 + 1/5 - 1/7 +... 公式求π的近似值,直到發現某一項的絕對值小於10^6為止。 #include <stdio.h> #include <math.h> int main() { double
【c語言】用選擇法對10個整數排序
#include <stdio.h> int main() { int i,j,min,temp,a[11]; printf("enter data:\n"); for(i=1;i<=10;i++) { scanf("%d",&a[i]
【C語言】用遞迴函式是實現函式功能的幾個例子
1.問題描述:寫一個遞迴函式DigitSum(n),輸入一個非負整數,返回組成它的數字之和。例如,呼叫DigitSum(1729),則應該返回1+7+2+9,它的和是19。 思路:這個題比較類似於求拆分整數,一個一個輸出。這個題多得一步是在拆分後,將這些數字加
用可變引數列表實現簡單的printf函式
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<stdarg.h> void print_num(int n) { if (
C語言:使用可變引數,實現函式,求函式引數的平均值。
此題的解決思路為:使用可變引數列表,求若干個引數的平均值,所以我們每次呼叫va_arg把它的值累加在sum變數裡,最後讓函式返回sum/n即可求得若干個引數的平均值。 具體程式碼如下: #include <stdio.h> #include <stdli
【C語言】可變引數列表剖析
一、為什麼函式要有可變引數列表 就舉一個簡單的例子來解答這個問題吧,具有一定C語言程式設計基礎的讀者,一定知道求兩個數平均值的函式,實現過程很簡單,我們只需要把兩個引數傳給函式,並用一個變數接收函式返回來的結果即可。 但是,我們都知道現實生活中,我們需要求
【C語言】main函式的引數解析
main函式 每個C程式都必須有一個main函式,main函式又稱為主函式,是執行程式的起點,它被稱之為函式,是否會像平時使用函式時需要自己的引數呢? 答案是肯定的,那麼他都有那些引數呢? main函式的在vs2017環境下除錯,可以看到main函式裡的三個引數
【c語言】將兩個字串連線起來,不要用strcat函式
#include <stdio.h> int main() { char s1[80],s2[40]; int i=0,j=0; printf("input string1:"); scanf("%s",s1); printf("input strin
【C語言】函式引數中的const修飾符
通常,字串操作函式原型中,都會在形參前面加上const修飾符,表示此指標不能用於修改字串的值 比如:char *strcpy(char *strDest, constchar *strSrc)
【C語言】觀察者模式用C語言實現
《C語言實現觀察者模式》 說明: 本例中使用了連結串列資料結構,該結構移植自linux核心原始碼的連結串列,使用方法見我的另一篇部落格,地址:【點選此處檢視連結串列使用方法】
【C語言】統計數字在排序數組中出現的次數
語言 個數 統計 ret r+ () class tdi times //數字在排序數組中出現的次數。 //統計一個數字在排序數組中出現的次數。比如:排序數組{1,2,3,3,3,3,4,5}和數字3,因為3出現了4次,因此輸出4. #include <stdio
【C語言】推斷一個數是否為2的n次方
post data- popu scanf scan ng- 輸入 ont print //推斷一個數是否為2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))
【C語言】 二叉樹的基本運算
IT btree AS CA style pri != -- str • 二叉樹節點類型BTNode: 1 typedef struct node 2 { 3 char data; 4 struct node *lchild, *rch