Если длина строки S больше N, то отбросить первые символы - C (СИ) (74536)

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

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

Дано целое число N (> 0) и строка S. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы «.» (точка). Язык Си

Решение задачи: «Если длина строки S больше N, то отбросить первые символы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
char* Convert(char* str, int newlen) {
    int len = strlen(str);
    int offs = abs(len - newlen);
 
    if (newlen < len) {
        memmove(str, str + offs, newlen + 1);
    }
    else if (len < newlen) {
        memmove(str + offs, str, len + 1);
        memset(str, '.', offs);
    }
 
    return str;
}
 
int main() {
    char text[64] = "Hello World";
 
    printf("%s\n", Convert(text, 5));
 
    printf("%s\n", Convert(text, 10));
 
    return 0;
}

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

  1. Подключение необходимых библиотек: iostream, string, cstring.
  2. Создание функции Convert, которая принимает два аргумента: строку str и новое значение длины newlen.
  3. Вычисление разницы между текущей длиной строки и новой длиной newlen.
  4. Проверка условия: если новая длина меньше текущей, то перемещение символов в начало строки.
  5. Проверка условия: если текущая длина меньше новой длины, то перемещение символов в начало строки и добавление символа точки в начало строки.
  6. Возврат измененной строки.
  7. Создание строки text и присваивание ей значения Hello World.
  8. Вызов функции Convert и передача ей строки text и новое значение длины 5.
  9. Вывод результата на экран.
  10. Вызов функции Convert и передача ей строки text и новое значение длины 10.
  11. Завершение работы программы.

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


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

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

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