我正在尝试创建一个返回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吗?
答案 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中的空白字符计数器?
答案:是的。