C 用于显示字符串中的字符数的程序
这是一个查找字符串中字符数的程序。但它计算的字符数是错误的。是否也在计算空白?即使这是真的,总数怎么可能是89?(见下面的输出)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
#包括
#包括
无效事件(字符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++;
}