C语言sscanf和sprintf的用法及实例

近来编程要用到这两个函数,这里结合MSDN以及自己的使用,对这两个函数作一下简要说明,加深对这两个函数的理解!

sscanf:

int sscanf( const char *buffer, const char *format [, argument ] ... );

Example
/* SSCANF.C: This program uses sscanf to read data items
·  from a string named tokenstring, then displays them.
 */

#include <stdio.h>
void main( void )
{
char  tokenstring[] = “15 12 14...”;
char  s[81];
char  c;
int   i;
float fp;

/* Input various data from tokenstring: */
sscanf( tokenstring, “%s”, s );
sscanf( tokenstring, “%c”, &c );
sscanf( tokenstring, “%d”, &i );
sscanf( tokenstring, “%f”, &fp );

/* Output the data read */
printf( “String    = %s\n”, s );
printf( “Character = %c\n”, c );
printf( “Integer:  = %d\n”, i );
printf( “Real:     = %f\n”, fp );
}

Output
String    = 15
Character = 1
Integer:  = 15
Real:     = 15.000000


sprintf:

int sprintf( char *buffer, const char *format [, argument] ... );

Example
/* SPRINTF.C: This program uses sprintf to format various
* data and place them in the string named buffer.
 */

#include <stdio.h>
void main( void )
{
char  buffer[200], s[] = “computer”, c = ‘l’;
int   i = 35, j;
float fp = 1.7320534f;

/* Format and print various data: */
j  = sprintf( buffer,     “\tString:    %s\n”, s );
j += sprintf( buffer + j, “\tCharacter: %c\n”, c );
   j += sprintf( buffer + j, “\tInteger:   %d\n”, i );
   j += sprintf( buffer + j, “\tReal:      %f\n”, fp );

printf( “Output:\n%s\ncharacter count = %d\n”, buffer, j );
}


Output
Output:
String:    computer
Character: l
   Integer:   35
   Real:      1.732053

character count = 71

以下就是我编程时候用到的,希望对看到的朋友有帮助:

#include <stdio.h>
#include <stdlib.h>
void main( void )
{
	char buffer[1024];
	int i, ch;
	
	//getchar
	printf( "Enter a line: " );
	for( i = 0; (i < 1024) &&  ((ch = getchar()) != EOF) 
		&& (ch != '\n'); i++ )
		buffer[i] = (char)ch;

	buffer[i] = '\0';
	//printf( "%s\n", buffer );

	char* username = (char*)malloc(30);
	char* password = (char*)malloc(32);

	//sscanf
	sscanf( buffer, "netdisk -u%s -p%s", username, password );

	printf( "username = %s\n", username );
	printf( "password = %s\n", password );

	//sprintf
	char* sql = (char*)malloc(1024);
	sprintf(sql, "select * from `user` where `username` = '%s'", username);

	printf( "sql = %s\n", sql );
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值