C语言编程中逗号是如何输出的!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程中逗号是如何输出的!!相关的知识,希望对你有一定的参考价值。

我要做的是查询文本文档中逗号的个数!!

这个程序中'//'是输出'/'所以是查询'/'的个数,不是查询逗号的个数。
在C函数库中有个函数是strchr()查询指定的字符所在的位置。
#include <stdio.h>
#include <ctype.h>
int main(void)

File *fp;
char *chr;
if(fp=fopen("text","r")==0)//假设“text”是要调用的文件

printf("text can't open!");
return 1;

while(feof(fp))

chr=strchr(fp,',');
count++;

fclose(fp);
return 0;
参考技术A

    逗号不是C语言当中的特殊字符,不需要转义,直接输即可。

    例如:

    printf("输出英文逗号,输出中文逗号,");
    puts("输出英文逗号,输出中文逗号,");

参考技术B 首先在头文件中,定义一下就行了 参考技术C 我都是用字符串,觉得简单好懂,不必使用转义序列。不过要注意是UNICODE还是……

如何在 jinja python 模板中输出逗号分隔列表?

【中文标题】如何在 jinja python 模板中输出逗号分隔列表?【英文标题】:How to output a comma delimited list in jinja python template? 【发布时间】:2012-08-12 01:03:50 【问题描述】:

如果我有users 的列表,比如["Sam", "Bob", "Joe"],我想做一些可以在我的 jinja 模板文件中输出的事情:

% for user in userlist %
    <a href="/profile/ user /"> user </a>
    % if !loop.last %
        , 
    % endif %
% endfor %   

我想让输出模板为:

Sam, Bob, Joe

我尝试了上面的代码来检查它是否在循环的最后一次迭代中,如果不是,则不要插入逗号,但它不起作用。我该怎么做?

【问题讨论】:

jinja 和 Python 一样,不使用 ! 作为否定运算符。 "not" 拼写为 "not"。 【参考方案1】:

您希望您的if 支票是:

% if not loop.last %
    ,
% endif %

请注意,您也可以使用If Expression 缩短代码:

 ", " if not loop.last else "" 

【讨论】:

这太棒了,尤其是在 html 中循环结束时 仅供参考,您可能需要根据您的设置将其设为 if/else。更多信息。可以在这里找到:github.com/pallets/jinja/issues/710 或者是某些情况 "," if not forloop.last 我支持关于添加 else 的评论。这对我有用 "," if not loop.last else "" 在我的例子中是forloop而不是loop%而不是,就像这样:% if not forloop.last %,% endif %。其他解决方案无效【参考方案2】:

你也可以使用内置的“加入”过滤器(http://jinja.pocoo.org/docs/templates/#join 像这样:

 users|join(', ') 

【讨论】:

虽然这适用于创建 csv,但请参阅上面的示例,它不能与周围的锚一起使用。 这种方法也不适用于转义: [' ['a\'', 'b']|join("', '") '] 产生 [' a'', 'b'] 这应该是第一件事。如果它不能按预期工作,请尝试其他解决方案,但这绝对是最干净的。 这给出了一个尾随逗号,我该如何摆脱它? 您可能有一个尾随空元素。如果你有三个元素 a b c 你会在加入 X 时得到 aXbXc:ansible -i localhost, all -m debug -a "msg=\" [ 'a','b','c' ]|join('X') \""【参考方案3】:

并使用来自https://jinja.palletsprojects.com/templates/#joiner 的joiner

% set comma = joiner(",") %
% for user in userlist %
     comma() <a href="/profile/ user /"> user </a>
% endfor %  

它正是为此目的而制作的。通常,对于单个列表,连接或检查 forloop.last 就足够了,但对于多组事物,它很有用。

一个更复杂的例子说明你为什么要使用它。

% set pipe = joiner("|") %
% if categories %  pipe() 
    Categories:  categories|join(", ") 
% endif %
% if author %  pipe() 
    Author:  author() 
% endif %
% if can_edit %  pipe() 
    <a href="?action=edit">Edit</a>
% endif %

【讨论】:

这实际上对我来说效果很好,没有留下逗号。感谢这个!

以上是关于C语言编程中逗号是如何输出的!!的主要内容,如果未能解决你的问题,请参考以下文章

C语言 逗号表达式

C语言中计算逗号表达式c=(a=7,b=a+2,b+1),并且输出a,b,c的值是啥意思啊?求解

C语言逗号表达式

用c语言编程实现输出100以内的所有是3的倍数,或者含有3的正整数。要求输出时所有的数都以逗号隔开

在C语言中,如果要输入一串数字,其中每个数字用逗号隔开,且不知道总共输入了多少数字。要怎样输入呢?

求c语言高手,括号配对问题