返回

字符串格式化输入输出(2)

发布时间:2022-09-30 22:21:18 381
关于字符串格式化输入输出

1.C语言标准库中提供​一类函数来处理字符串输入输出。

2.字符串输入输出:处理的对象是字符串,从字符串中输入(或输出)到字符串。

3.标准输入输出:处理的对象是键盘或显示器,从键盘输入(或输出)到显示器。

关于字符串格式化处理函数

1.通用类型的字符串标准输入输出函

int scanf("%s", &str);
int printf("%s",str);

2.按行读取和输入字符串输入输出函数

char *gets(char *s);//读取输入的字符串保存到指定的字符数组s中

//从标准stdin中(键盘)读取输入的字符串保存到指定的字符数组s中,字符串末尾自动加入空字符。

//读取成功返回指向数组的指针,出错或无输入返回空指针。

int puts(const char *s);//将字符串s输出到标准输出stdout(屏幕)中

//将字符串s输出到标准输出stdout(屏幕)中,并遇到空字符\0时自动输出换行符\n。

//出错返回EOF,成功返回非负值或0。

示例:

#include 
int main()
{
char str[100];
gets(str);//读取输入的字符串保存到指定的字符数组str中
char *p ;
p =str; //指针p指向str首地址

puts(str);//借助数组将字符串str输出到标准输出stdout(屏幕)中

puts(p);//借助指针将字符串str输出到标准输出stdout(屏幕)中

return 0;
}

运行结果

输入:   xiaozhan  ooo
输出: xiaozhan ooo
xiaozhan ooo

关于字符串格式输出函数sprintf()

将各种类型的参数按照格式输出到指定的字符数组中保存。

int sprintf(char *s, const char *format,...);
//char *s表示指向字符数组的指针,format参数是格式化控制字符串。
//返回值是输出的字符数量,不包括s数组中自动加入的空字符。
//作用:各种类型的值转换成一定格式的字符串。

示例:

将各种类型的变量值组合转换成特定格式的字符串。

#include 
int main()
{

char str[100];
sprintf(str,"%c %d %.2f %.2lf %p",'A',100,100.01f,100.01,str);
//作用:各种类型的值转换成一定格式的字符串。
printf("%s\n",str);
return 0;
}

运行结果:

A 100 100.01 100.01 0060FE9C

另一种非C89标准规定的输出函数snprintf(),主流的编译器均提供支持。

int snprintf(char *s, size_t size, const char *format, ...); 
//将参数按照格式控制转换成字符串,其中size规定字符串最大长度,超过size,就会截断输出

示例:

输出的字符串长度最大为10,不包括空字符在内,超出截断。

#include 
int main()
{
char str[11];
snprintf(str,10,"%c %d %.2f %.2lf %p",'A',100,100.01f,100.01,str);
//将参数按照格式控制转换成字符串
printf("%s\n",str);
return 0;
}

运行结果:

A 100 100.

字符串格式输入函数sscanf()

从字符串中按照格式提取对应的值赋值给参数。

int sscanf(const char *s, const char *format, ...);
//参数s是指向字符串的指针,format参数是格式化控制字符串。
//返回值是输入赋值的参数项数,输入转换失败的,则返回EOF。
//作用:将字符串中各个子串提取转换赋值各种类型的参数变量。

示例:

#include 
int main()
{
char str[] = "A 100 100.01 100.01 0062FE3C";
char c;
int i;
float f;
double d;
void *p;
sscanf(str,"%c %d %f %lf %p",&c,&i,&f,&d,&p);
printf("%c %d %.2f %.2lf %p\n",c,i,f,d,p);
return 0;
}

运行结果:

A 100 100.01 100.01 0062FE9C

------------- END -------------

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
C89标准库功能说明(1) 2022-09-30 21:49:49