Удалить группы пробелов, которыми начинается и которыми заканчивается последовательность - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Переведите пожалуйста с Pasсal/Basic на C.

Задание:

Известно, что в исходной строке есть хотя бы один символ, отличный от пробела. Требуется преобразовать строку следующим образом. Удалить группы пробелов, которыми начинается и которыми заканчивается последовательность, а также заменить каждую внутреннюю группу пробелов одним пробелом. Если указанных групп нет в данной последовательности, то оставить последовательность без изменения.

Program z4;
Uses CRT;
Var 
    S:string;
Begin
    Clrscr;
    readln(S);
    while S[1]=' ' do 
        delete(S,1,1);
    while S[length(S)]='  ' do 
        delete(S,length(S),1);
    while pos('  ',S)<>0 do 
        delete(S,pos('  ',S),1);
    writeln(s);
    readkey;
End.
CLS
DIM s AS STRING, I AS INTEGER
INPUT "", s
s = LTRIM$(RTRIM$(s))
I = INSTR(s, "  ")
DO WHILE I > 0
    s = RTRIM$(LEFT$(s, I)) + " " + LTRIM$(MID$(s, I))
I = INSTR(s, " ")
LOOP
PRINT s;

Решение задачи: «Удалить группы пробелов, которыми начинается и которыми заканчивается последовательность»

textual
Листинг программы
#include <stdio.h>
#include <malloc.h>
#include <string.h>
 
void main()
{
    char *delims = " ";
    char *s, *p;
    printf("%s","String:");
    s = malloc(256);
    gets(s);
    p = strtok( s, delims );
    while( p != NULL ) {
      printf("%s ", p );
      p = strtok( NULL, delims );
    }
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены три переменные: delims, s, p.
  2. Переменная delims инициализируется строкой .
  3. Переменная s инициализируется динамически выделенной памятью на 256 символов.
  4. Пользователю предлагается ввести строку.
  5. Далее, в цикле while, происходит обход всех подстрок в исходной строке, разделенных пробелами.
  6. Каждая подстрока выводится на экран с помощью функции printf.
  7. В конце цикла, p=NULL, что означает конец подстрок.
  8. В конце программы, free(s); освобождает память, выделенную под строку s.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы