Загрузка...

Помощь в программе

Тема в разделе C/C++ создана пользователем jazzy300 18 дек 2021. 127 просмотров

  1. jazzy300
    jazzy300 Автор темы 18 дек 2021 2 3 дек 2020
    Есть задание, "ввести строку и слово. Определить и вывести, сколько раз встречаются в строке буквы, перечисленные в слове". Программа у меня есть готовая и правильная, но мне надо сделать так, что бы в коде было несколько функций. Поэтому нужна помощь в редактировании кода (условно надо сделать ввод массива и слова в виде отдельной функции)
    Код
    #include <stdio.h>

    int main()
    {
    char str[100], slovo[100];
    char c, l;
    int i = 0, a = 0;
    int k = 0;
    printf("Input a string:\n");
    while ((c = getchar()) != '\n' && i < 99)
    {
    str[i] = c;
    i++;
    }

    str[i] = '\0';

    printf("Input a word:\n");
    while ((l = getchar()) != '\n' && a < 99)
    {
    slovo[a] = l;
    a++;
    }
    slovo[a] = '\0';





    int mas[a];
    for (int u = 0; u < a; u++)
    {
    mas[u] = 0;
    }
    for (k = 0; k < i; k++)
    {
    if (str[k] != ' ' && str[k] != '\t')
    {
    for (int m = 0; m < a; m++)
    {
    if (slovo[m] == str[k])
    {
    mas[m]++;
    }
    }
    }
    }
    printf("Count of : \n");
    for (int z = 0; z < a; z++)
    {
    printf("%c = %d\n", slovo[z], mas[z]);
    }
    }
     
    18 дек 2021 Изменено
  2. kageno
    kageno 18 дек 2021 1625 12 дек 2016
    jazzy300,
    C
    #include <stdio.h>

    void readStr(char* word, int* a) {
    char l;
    while ((l = getchar()) != '\n' && *a < 99)
    {
    word[*a] = l;
    (*a)++;
    }
    }

    int main()
    {
    char c;
    int i = 0, a = 0, k = 0;

    char str[100];
    printf("Input a string:\n");
    readStr(str, &i);
    str[i] = '\0';

    printf("Input a word:\n");
    char slovo[100];
    readStr(slovo, &a);
    slovo[a] = '\0';

    char red[a];
    int mas[a];

    for (int u = 0; u < a; u++)
    {
    mas[u] = 0;
    }

    for (k = 0; k < i; k++) {
    if (str[k] != ' ' && str[k] != '\t')
    {
    for (int m = 0; m < a; m++) {
    if (slovo[m] == str[k])
    {
    mas[m]++;
    }
    }
    }
    }

    for (int z = 0; z < a; z++)
    {
    printf("%c = %d\n", slovo[z], mas[z]);
    }
    }
     
Top
Загрузка...