我正在尝试创建一个小函数,返回 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/