Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 用于显示字符串中的字符数的程序_C - Fatal编程技术网

C 用于显示字符串中的字符数的程序

C 用于显示字符串中的字符数的程序,c,C,这是一个查找字符串中字符数的程序。但它计算的字符数是错误的。是否也在计算空白?即使这是真的,总数怎么可能是89?(见下面的输出) #包括 #包括 无效事件(字符str[100],字符ch) { int count=0,max=0,i; for(i=0;i计数字符的for循环有两个重要错误: 它从0到100,应该从0到99。如果分配一个100个元素的数组,那么最高元素的索引是99,总共有100个元素。传统上循环的退出条件是i

这是一个查找字符串中字符数的程序。但它计算的字符数是错误的。是否也在计算空白?即使这是真的,总数怎么可能是89?(见下面的输出)

#包括
#包括
无效事件(字符str[100],字符ch)
{
int count=0,max=0,i;

for(i=0;i计数字符的
for
循环有两个重要错误:


  • 它从0到100,应该从0到99。如果分配一个100个元素的数组,那么最高元素的索引是99,总共有100个元素。传统上循环的退出条件是
    i<100
    ,而不是
    i是,空格是一个字符。100个元素中的每一个都是字符n您的数组。您正在计算除空值以外的所有值,sp我猜您有11个空值。此外,您的for循环关闭了一个。

    这将为您提供正确的输出

    void occurrence(char str[100], char ch)
    
    { int count=0,max=0,i=0

    while(str[i]!='\0')
    {
        max = max + 1;
    
        if( str[i] == ch )
        {
        count = count + 1;
        }
        i++;
    }
    

    }

    `for(i=0;
    break
    确实是一个很好的方法,是的。
    如何跳过空白字符?您必须检查每个字符是否为空白。您可以单独检查“”、'\t'、'\f'、'\n'、'\r'等,也可以使用C标准库例程
    isspace(char)
    .Aaaaagh!永远不要使用
    get()
    !它的设计不可能安全使用。如果你的教科书建议使用
    get()
    ,请烧掉它。如果你的老师/教授建议使用
    get())
    ,放弃课程。说真的,这种事情是更糟糕的胡说八道的标志…@KarlKnechtel,请解释为什么在C语言中使用gets()是不好的,还是在其他语言中也不好?我想读一些字符,包括空格,直到我按下“回车”键Button使用它;
    gets()
    是一个函数。它很糟糕,因为正如我所说,它的设计不可能安全使用。它在文档中这样说(请参阅“bug”部分),并解释了更多原因。(如果你不理解解释,你需要进一步研究。)
    while(str[i]!='\0')
    {
        max = max + 1;
    
        if( str[i] == ch )
        {
        count = count + 1;
        }
        i++;
    }