Есть ответ 👍

Решить на языке си(с), не си++ строка может содержать произвольное количество пробелов и табуляций. строке должно быть не более одного пробела между словами. в начале и в конце не должно быть пробелов,ни та табуляций. пример: > авс_с

227
398
Посмотреть ответы 2

Ответы на вопрос:


#include < stdio.h> #include < stdlib.h> #include < string.h> #include < locale.h> //максимальная длина вводимой строки#define mx_s 255 //массив символов, которые  //необходиом удалить в начале и конце строкиchar sim[] = { '\t', ' '}; //функция проверяющая входит ли данный символ c в массив simint char_in_arr(char c) { int f = 0; for (int i = 0; i < strlen(sim); i++) { if (c == sim[i]) { f = 1; break; } } return f; } int main(){ setlocale(lc_all, "rus"); //вводимая строка char s[mx_s]; //ввод данных printf("\n > > введите строку\n < < "); fgets(s, mx_s, stdin); int l = strlen(s) - 1; //переменные для определения отсечений в начале и конце строки int pos_b = 0; int pos_e = l-1; //проверяем начало строки //если нам удаляемые символы то увеличиваем значение pos_b for (; (pos_b < l) & & char_in_arr(s[pos_b]); pos_b++) {} //проверяем конец строки //если нам удаляемые символы то уменьшаем значение pos_e for (; (pos_e > = 0) & & (char_in_arr(s[pos_e])); {} //длина отсеченного отрезка int l2 = pos_e - pos_b + 1; //если длина корректа то if (l2 > 0) { //строка для результата char s2[mx_s]; //идем по строке s1 int pos = 0; for (int i = pos_b, k_s = 0; i < = pos_e; i++) { //считаем пробелы, идущие подряд if (s[i] == ' ') k_s++; else k_s = 0; //если это не подряд идущие пробел if (k_s < 2) { //записываем символ в s2 s2[pos] = s[i]; pos++; } } s2[pos] = '\0'; //вывод результат printf("\n > > результат\n < < "); fputs(s2,stdout); } else //строка пуста/содержит только символы из массива sim printf("\n > > ошибка в строке\n"); system("pause> > void"); return 0; }
Molyaa97
4,5(93 оценок)

Var   n, k, i: integer;   s: string; begin   write('введите число: ');   read(s);   write('введите исходную систему счисления: ');   read(k);   for i : = 1 to length(s) do       n : = n * k + ord(s[i]) - 48;   write(s, '(2) = ', n, '(10)'); end. пример работы программы: введите число: 101000111000111 введите исходную систему счисления: 2 101000111000111(2) = 20935(10)

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS