Оставить по 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.