【发布时间】:2019-11-13 16:11:40
【问题描述】:
当将空格作为参数传递时,可以使用' ' 传递吗?
我目前正在重新创建printf。
下面的代码是我传入的示例。
当它像这样传入时,它工作正常:
ft_printf("Start %-+# 0400.500hhiend\n");
这导致人们相信空格不能像' '这样的参数传入,但我只是想仔细检查一下。
传入:
ft_printf("Start %-+#' '0400.500hhiend\n");
解析代码:
while (fmt[count] == '-' || fmt[count] == '+' || fmt[count] == ' ' ||
fmt[count] == '#' || fmt[count] == '0')
【问题讨论】:
-
不看
ft_printf的定义就无法判断。如果您在"...' '..."中包含' ',则您只是在字符串本身中包含三个文字字符' '。请提供A Minimal, Complete, and Verifiable Example (MCVE)。 -
在 POSIX
printf()中,撇号'是有效的格式修饰符,这意味着使用千位分组字符(struct lconv中的thousands_sep来自<locale.h>)。重复它是不必要的,但可能没有害处。格式的数字部分没有多大意义。0表示前导零(但您也有-左对齐;400最小宽度非常宽;.500最小位数通常小于400;hhi表示(有符号的)字符值。奇数! -
感谢您迄今为止的反馈!让我们忽略我正在重新创建 printf 的事实。我认为这可能会误导我的核心问题。 "' ' 是否等同于将空格作为参数传递给函数?
标签: c parameter-passing whitespace