2 luoyihu luoyihu 于 2013.09.13 20:41 提问

使用c语言printf输出%s

我想用C语言输出%s,为什么printf("%%s")可以输出%s?这是什么原理?
为什么用转义的方式printf("\045")的方式,不能输出%呢?printf("\044")不就能输出$

3个回答

lx624909677
lx624909677   Ds   Rxr 2013.09.14 12:17
已采纳

首先说下%,这是格式吗,后面跟着的是输出内容的格式,\045方式输出和%输出结果都是一样的,因为你没有加对应的格式都不会输出内容,如果你写成\045\045就可以输出一个%,原因和上面说的一样,而$只是一个符号,没有其他功能,所以可以直接输出

forgaoqiang
forgaoqiang   2013.09.14 14:02

前面的是符号输出格式描述符,比如 printf(“%c",'a'); 描述符可有可无,你的
%%s 因为不存在 %%s 的描述符,程序就当做字符串输出了
如果要输出单个字符,可以使用 %c

WY247688206
WY247688206   2013.10.18 07:05

%%s中,%% 是转义字符,% 所以输出的是%s
"\044" "\045" 由于"\044"是普通字符,可以通过这样的方式输出
printf("\045"); 编译后就是 printf("%"); 当然不能输出 % , C语言规定 通过%%的形式输出 %,就和输出"\" 是一样的,这是特殊字符的输出方式

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言printf()函数的%*s输出
C语言printf()函数的%*s输出
C语言实现printf的基本格式输出%d,%c,%p,%s
关于printf的实现,想必看过我之前发表的文章的伙伴们已经了解了不少基本的知识。好了,接下来不多说了,直接上源码,看看一种简单的实现方式:       #include #define myfflush(out) do {} while (0) typedef int uint32_t; //输出十进制数 static void print_Dec (uint32_t n)
C语言之printf() %s 转换说明修饰符
C语言之printf() %s %24.5s..
C语言printf——动态指定输出格式长度
printf动态指定长度信息的数字,采用”*”来占用一个本来需要一个指定宽度或精度的常数数字的位置,例如:printf(s, "%.*s%.*s", 7, a1, 7, a2);或printf(s, "%.*s%.*s", sizeof(a1), a1, sizeof(a2), a2);printf(s, "%-*d", 4, A); //产生"65 "printf(s, "%#0*X", 8
关于C语言中printf输出字符串的问题!字符串须以'\0'作为结尾。
关于C语言中printf输出字符串的问题! 悬赏分:20 - 解决时间:2008-4-29 14:23 #include void main (){char a[]={'c','h','i'};char b[]={'n','a'};printf("%s%s\n",a,b);}结果是chinachi 为什么??? 提问者: cww3644 - 助理 二级 最佳答案检举因为a和b没有字符串的
c/c++语言printf/wprintf,wchar_t中文字符输出总结
关于编码字符集:简单理解为,ascii码表达了美国英文字符,为一字节 为了统一世界文字编码,出了unicode,如ucs-2,ucs-4,分别为16字节和32字节 因为历史包袱,unicode不可能完全替代以前的biam
%s 与 %ls的区别
%s 与 %ls的区别 收藏 document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboa
C语言 printf 格式化 输出 右对齐补零
C语言IO--printf右对齐补零 2009-10-24 11:532219人阅读评论(1)收藏举报 关于printf的一点总结,内容来自http://blog.sina.com.cn/s/blog_5ac88b350100auna.html 1.1  标准输入输出函
c语言printf()函数格式化输出
printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,如省略表示指定空位不填。 ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。对数值型的来说,未指定n时,隐含
C printf 格式输出字符串
s格式符:用来输出一个字符串。  %s 用来输出一个字符串,不含双引号. 例:printf("%s","CHINA");  %ms m指定宽度(字符串长度小于m时左补空格,大于时按实际宽度输出)  %-ms 左对齐,不足m时右补空格  %m.ns 输出占m列,只取字符串中左端n个字符.这n各字符输出在m列的右侧,左补空格.  %-m.ns 同上,右补空格 int _tmai