Оставить по 2 буквы в каждом слове - C (СИ)
Формулировка задачи:
Здравствуйте,
Имеется массив указателей на слова, полученный после разбития текста. Мне необходимо оставить по 2 буквы в каждом слове. Как будет правильно это сделать?
Решение задачи: «Оставить по 2 буквы в каждом слове»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- int main(void) {
- char* text[] = {
- "This",
- "input",
- "very",
- "important"
- };
- int counter = 0;
- printf("Words!\n");
- char twoCharacters[3];
- for (counter = 0; counter < 4; ++counter) {
- printf("Word: %s\n", text[counter]);
- if (strlen(text[counter]) >= 3) {
- strncpy(twoCharacters, text[counter], sizeof(twoCharacters) - 1);
- twoCharacters[2] = '\0';
- printf("First two characters: %s\n", twoCharacters);
- }
- }
- return EXIT_SUCCESS;
- }
Объяснение кода листинга программы
В этом коде:
- Создается массив строк
text[]
с четырьмя элементами, содержащими словаThis
,input
,very
иimportant
. - Инициализируется переменная
counter
со значением 0. - Выводится сообщение
Words!
. - Создается массив символов
twoCharacters[]
с максимальным размером 3 символа. - В цикле
for
начиная с 0 и до 3 происходит вывод каждого слова из массиваtext[]
с помощью функцииprintf()
. - Если длина слова в текущей итерации больше или равна 3 символам, то первые два символа этого слова копируются в массив
twoCharacters[]
с помощью функцииstrncpy()
. - В конце цикла
for
добавляется символ конечной строки '\0' в массивtwoCharacters[]
. - Выводится сообщение
First two characters: %s\n
с помощью функцииprintf()
, где%s\n
является форматом вывода строки, аtwoCharacters[]
является значением этой строки. - Код завершается успешным завершением функции
main()
с кодом выхода EXIT_SUCCESS.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д