Счетчик пустых символов в С - PullRequest
0 голосов
/ 22 августа 2010

Я пытаюсь создать небольшую функцию, которая возвращает количество пробелов в переменной 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;
}

источник, из которого я читаю, - это текстовый файл, и я должен добавить 1 исправление: код, который я разместил, действительно работает, но имеет 1 недостаток: если, например, я хочу прочитать: "привет, как дела?" i want my function to be able to return 2 but it returns 3 because of the space that appears just after the word вверх, есть ли у вас какие-либо предложения для меня, чтобы он вернул 2?

Ответы [ 2 ]

2 голосов
/ 22 августа 2010

Я подозреваю, что вы не захотите считать начальные пробелы слишком "привет, как дела", должно возвращаться и 2, верно?

Я могу предложить 2 решения. Во-первых, это обрезать все пробелы до того, как вы начнете считать их Как мне обрезать начальные / конечные пробелы стандартным способом? .

Второй - настроить начальную и конечную точку цикла на первый и последний непробельные символы, а затем выполнить подсчет:

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} 
0 голосов
/ 22 августа 2010

Вопрос: пустой счетчик символов в C?

Ответ: Да.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...