Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <locale.h>
- #include <stdlib.h>
- #define separators " \n\t"
- int count = 0;
- char* vowels[6] = { 'a', 'e', 'i', 'o', 'u', 'y' };
- int compareWords(char temp) {
- int flag;
- for (int k = 0; k < 6; k++) {
- if (temp == vowels[k]) {
- return flag = 1;
- }
- }
- return flag = 0;
- }
- void main() {
- setlocale(LC_ALL, "Rus");
- char defaultString[255] = "";
- printf("Программа печатает все слова, отличные от последнего слова. Для каждой гласной буквы указать сколько раз она встречается в полученном предложении..\nПрограмма печатает все слова, отличные от последнего слова в таком порядке, чтобы последняя буква каждого слова совпадала с первой буквой следующего слова.");
- printf("\n\nВведите строку(максимум 255 символов):\n");
- fgets(defaultString, 255, stdin);
- int wordsAmount = 0;
- char* wordsA[255];
- char* wordsB[255];
- char* currentWord;
- char* lastWord = NULL;
- int сharacters[256] = { 0 };
- char c;
- int numberOfNonRepeatedWords = 0;
- int numberOfDifferentWords = 0;
- int countOfRepeats = 0;
- //задание а
- for (currentWord = strtok(defaultString, separators); currentWord != NULL; currentWord = strtok(NULL, separators)) {
- wordsA[wordsAmount] = currentWord;
- wordsB[wordsAmount] = currentWord;
- wordsAmount++;
- }
- for (int i = 0; i < wordsAmount; i++) {
- for (int j = 0; i > -1 && j < strlen(wordsA[i]); j++) {
- if (wordsA[i][j] < 65 || wordsA[i][j] > 122 || wordsA[i][j] > 90 && wordsA[i][j] < 97) {
- for (int a = i; a < wordsAmount - 1; a++) {
- strcpy(wordsA[a], wordsA[a + 1]);
- strcpy(wordsB[a], wordsB[a + 1]);
- }
- wordsAmount--;
- i--;
- }
- }
- }
- lastWord = wordsA[wordsAmount - 1];
- printf("Все слова, отличные от последнего:\n");
- for (int j = 0; j < wordsAmount - 1; j++) {
- if (strcmp(lastWord, wordsA[j]) != 0) {
- numberOfDifferentWords++;
- printf(" %s", wordsA[j]);
- for (int a = -128; a <= 127; ++a) {
- сharacters[a + 128] = 0;
- }
- }
- }
- if (numberOfDifferentWords == 0) {
- printf("\tНет слов, отличных от последнего.\n\n");
- }
- for (int i = 0; i < wordsAmount; i++) {
- for (int j = 0; i > -1 && j < strlen(wordsA[i]); j++) {
- if (compareWords(wordsA[i][j]) == 1) {
- count++;
- }
- }
- }
- printf("\n\t\tБуква встречается %d раз", count);
- //задание б
- /* printf("\nб) Слова, отличные от последнего, встречающиеся один раз:\n");
- if (numberOfDifferentWords != 0) {
- for (int j = 0; j < wordsAmount - 1; j++) {
- if (strcmp(lastWord, wordsB[j]) != 0) {
- count = 0;
- for (int a = 0; a < wordsAmount - 1; a++) {
- if (strcmp(wordsB[a], wordsB[j]) == 0) {
- count++;
- }
- }
- if (count < 2) {
- printf("\t%s\n", wordsB[j]);
- numberOfNonRepeatedWords++;
- }
- }
- }
- if (numberOfNonRepeatedWords == 0) {
- printf("\tНет неповторяющихся слов, отличных от последнего.\n\n");
- }
- }
- else {
- printf("\tНет слов, отличных от последнего.\n\n");
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement