C中的空白字母计数器

时间:2010-08-21 20:00:00

标签: c

我正在尝试创建一个返回Char *中空格数的小函数 变量使用C语言。

假设我有这个字符串:"hello hello hello"。我希望函数返回2。 这是我到目前为止的代码:

int blankcounter(char* pline)
{                              
  int i=0;                  
  int counter = 0;            
  while (pline[i] != '\0')       
  {                               
    if (pline[i++] ==' ')
      counter++;
  }
  return counter;
}

我正在阅读的来源是一个txt文件和我需要添加的1个更正是我发布的代码确实可以工作但有1个缺点:如果我想读:“你好了什么”{ {1}}你对我有什么建议所以它会返回2吗?

2 个答案:

答案 0 :(得分:2)

我怀疑你也不想计算领先的空间“你好了什么”应该返回2对吧?

我可以提出2个解决方案。首先是在开始计算它们之前修剪所有空格How do I trim leading/trailing whitespace in a standard way?

第二种是将循环的起点和终点调整为第一个和最后一个非空格字符,然后执行计数:

int start=0;  
int end = strlen(pline);  
int i=0;  
while (pline[i++]==' ') start++;  
i=end-1;  
while (pline[i--]==' '&& i >= 0) end--;  
for (i=start; i<end; i++) { your count procedure} 

答案 1 :(得分:0)

问题:C中的空白字符计数器?

答案:是的。