Удаление лишних пробелов из предложения, имеющего специальные символы в C - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть предложение:

    irmovq   $5    ,     %r1

Я хочу преобразовать его в:

irmovq $5, %r1

То есть я хочу удалить лишние пробелы из этой строки. Как лучше всего реализовать такую ​​функцию обрезки?

1 Ответ

1 голос
/ 24 апреля 2020
#include <ctype.h>
#include <stdio.h>

void remove_extra_spaces(char* str) {
  int i, x;
  for(i=x=0; str[i]; ++i)
    if(!isspace(str[i]) || (i > 0 && !isspace(str[i-1])))
      str[x++] = str[i];
  str[x] = '\0';
}

int main(int argc, char* argv[]) {
  char str[] = "    irmovq   $5    ,     %r1";
  remove_extra_spaces(str);
  printf("%s\n",str);
  return 0;
}
...