⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 print.c

📁 linux下的printf函数实现
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include "mystring.h"int _printf(const char *fmt, ...){	int *stack = (int *)&fmt;	char *str;	str = (char *)malloc(sizeof(char) * MAX_LEN);	if(!str)		return -1;	char *buf = (char *)malloc(sizeof(char) * MAX_LEN);	if(!buf)		return -1;	char *pcur = buf;		while(*fmt)	{		if(*fmt == '%')		{			switch(*(fmt + 1))			{				case '%':					*pcur++ = '%';					fmt += 2;					break;				case 'c':					*pcur++ = *(++stack);					fmt += 2;					break;				case 'd':					str = int_char(*(++stack));					while(*str)						*pcur++ = *str++;					fmt += 2;					break;				case 's':					istrcpy(str, (char *)*(++stack));					while(*str)						*pcur++ = *str++;					fmt += 2;					break;				case 'p':					str = uint_hex(*(++stack));					fmt += 2;					*pcur++ = '0';					*pcur++ = 'x';					while(*str)						*pcur++ = *str++;					break;				default:					*pcur++ = *fmt++;			}		}		else			*pcur++ = *fmt++;	}	*pcur = '\0';	while(*buf)		putchar(*buf++);	return 1;}int main(){	int i;	char *str = "STRING";	char *str2 = "new printf";	int a[10000] = {1, 2, 3};	_printf("_printf:\n");	_printf("%dHel%slo%c, i%%Linux%d, %c, %s, %p\n", 7555555, str2, 'h', 0, 'A', str, &str);	_printf("printf:\n");	printf("%dHel%slo%c, i%%Linux%d, %c, %s, %p\n", 7555555, str2, 'h', 0, 'A', str, &str);	for(i = 0; i < 3; i++)	{		printf("a[%d] = %d\n", i, a[i]);		_printf("a[%d] = %d\n", i, a[i]);	}	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -