c - C 中的空白字符计数器

标签 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个缺点:例如,如果我想阅读:“你好,怎么了”我希望我的函数能够返回 2,但它返回 3,因为单词 up 之后出现空格,您对我有什么建议吗,这样它就会返回 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} 

关于c - C 中的空白字符计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3538717/

相关文章:

将 pid_t 转换为字符串

c - 如何在 C 中将 10131520 转换为 Unix 纪元时间?

c - 浮点单调性

c - 为 x % 8 写一个等价的 C 表达式?

c - 警告 : 2 reduce/reduce conflicts [-Wconflicts-rr] in yacc grammar

c - HMAC-MD5 与 CryptoApi

Eclipse中C/C++编译错误

c - C 编译器是否假设有符号整数的加法是可交换的?

c - 尝试安装 openmpi 时出现段错误

C:编程:如何从main.c创建main.o?