Посчитать количество слов, которые начинаются с одной буквы - C (СИ)

  1. Доброго времени суток. Прошу помочь в решении следующих задач:Написать программу ,считывающую строку текста и печатающую таблицу,показывающую ,сколько раз в тексте встречаются слова ,начинающиеся с одной и той же буквы.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include "stdafx.h" #include "string.h"   int main () {   int k = 0;   char str[] ="Show unnamed handles and mappings";   char *p;   for (p = strtok(str," "); p ; p = strtok (0," "))           return 0; }Не могу понять , как составить цикл по проверке слов , начинающихся на одну и ту же букву. Прошу обойтись без сообщений в духе "почитай про такую-то функцию и поймешь". Просто на данный момент ситуация такая , что решить данные задачи сам я не в состоянии. Надеюсь на вашу поддержку и понимание. P.S.Решить надо на Си. (желательно без применения с++)


textual

Код:

#include "stdafx.h"
#include <string.h>
#include <conio.h>
#include <ctype.h>
 
int main ()
{
    char str[] ="Abf vde avfg cvg a", *p = NULL;
    size_t map[127] = {0}, i, mapSize = sizeof(map) / sizeof(*map);
    for (p = strtok(str, " "); p; p = strtok(NULL, " "))
    {
        ++map[tolower(*p)];
    }
    for(i = 0; i < mapSize; ++i)
    {
        if(isalpha(i) && map[i])
        {
            printf("%c - %u\n", i, map[i]);
        }
    }
    _getch();
    return 0;
}


Похожие ответы
  1. Нужно что бы он считал количество заглавных буквC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include #include #include #include void main() {     char s[250];     int i, kol = 0, kol1 = 0, j;     puts("Enter string");     fgets(s, 250, stdin); ("%s", s);     i = 0;     j = 0;     for (i = 0; i

  1. Решить эту задачу используя простейшие структуры данных Определить количество слов, у которых первый и последний симво-лы совпадают между собой.

  1. Я написала программу с двумя элементами ввода массивов, но результат выводит не неверный и после выбора ручного ввода программа вылетает. Помогите пожалуйстаC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 #include #include #include #include #include #include #define N 500 #define MIN 80 int main(void) { setlocale (0, "rus"); int a[N],n,i, min=a[0], nummin=0, sum=0, nol=0, k; srand((unsigned)time(NULL)); printf ( " Определите характер заполнения: 1- автоматическое, 2- вручную"); printf("\n"); scanf("%d",&k);   switch(k) { case 1: { printf("vvedite n - "); scanf("%d",&n); for (i=0; ia[i])           {               printf("\n");               min=a[i];              nummin=i;}         for (i=nummin+1; i

  1. как обявить масим если заранее не известно сколько там будет значений?? СПС!

  1. Помогите, пожалуйста, только начал изучать язык, нашел в сборнике задач для паскаля такое задание : Во введенной пользователем строке посчитать количество букв «а» и «о» вывести их число на экран. Как его правильно выполнить?

  1. Запись имеет вид: фамилия спортсмена, его номер, количество набранных очков. Удалить из списка информацию о спортсмене с наименьшим количеством очков. C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #define _CRT_SECURE_NO_WARNINGS #include * #include struct sportsmen{     char FirstName[32];     int number[10], points[128]; }; void read(struct sportsmen *sportsmen, int i) {     for (int j = 0; j < i; j++){         printf("enter FirstName \n");         scanf("%s", &sportsmen[j].FirstName);         printf("enter number \n");         scanf("%i", &sportsmen[j].number);         printf("enter points \n");         scanf("%i", &sportsmen[j].points);     } } int main() {     setlocale(LC_ALL, "ukr");     struct sportsmen sportsmen[5];     read(sportsmen, 5);     FILE *f, *fdell;     if ((f = fopen("f.txt ", "wb")) == NULL)     {         printf("Помилка при відкритті файлу");         return 1;     }     } Нашел в интернете код C++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 #define _CRT_SECURE_NO_WARNINGS   #include #include #include #include   char c; struct sports { char fam[20]; int number, score; } spr; void inputdata(FILE *); void updatedata(FILE *); void printdata(FILE *); void deletedata(FILE *);   void inputdata(FILE *st) {     char ch;     st = fopen("file1.dat", "wb");     do     {         printf("\nВведите данные спортсмена через пробел - фамилия, номер, количество набранных очков.\n");         scanf("%s%d%d", spr.fam, &spr.number, &spr.score);         fwrite(&spr, sizeof(spr), 1, st);         printf("\nЗакончить ввод данных?\n");         ch = getch();     } while (ch != 'y');     fclose(st);     system("cls");     printf("Данные о спортсменах записаны!\n"); }   void printdata(FILE *st) {     system("cls");     int i;     st = fopen("file1.dat", "rb");     i = 1;     fread(&spr, sizeof(spr), 1, st);     while (!feof(st))     {         printf("\n%d. Фамилия спортсмена: %s, номер: %d, количество очков: %d", i, spr.fam, spr.number, spr.score);         fread(&spr, sizeof(spr), 1, st);         i++;     }     printf("\n\nНажмите любую клавишу для выхода в меню.\n");     getch();     system("cls"); }   void updatedata(FILE *st) {     char ch;     st = fopen("file1.dat", "ab");     do     {         printf("\nВведите данные о спортсмене через пробел - фамилия, номер, количество набранных очков.\n");         scanf("%s%d%d", spr.fam, &spr.number, &spr.score);         fwrite(&spr, sizeof(spr), 1, st);         printf("\nЗакончить добавление данных? y/n\n");         ch = getch();     } while (ch != 'y');     fclose(st);     system("cls"); }   void deletedata(FILE *st) {     system("cls");     char ch;     int i, n, min;     sports *p, temp;     st = fopen("file1.dat", "rb");     n = 0;     fseek(st, 0, 2);     n = ftell(st) / sizeof(sports);     fseek(st, 0, 0);     p = (sports *)malloc(n*sizeof(sports));     for (i = 0; i

  1. Всем привет, помогите посчитать количество рекурсий в программе.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include #include #include unsigned long long Fib(unsigned long long N) {         if (N<=1)     return (N);     else     return Fib(N-1)+Fib(N-2);       } int main () {     setlocale(LC_ALL, "Rus");     unsigned long long N;     printf ("Введите число N");     scanf("%d",&N);     for(int i;i<=N;i++)     printf ("%d\n",Fib(i));     printf("runtime=%d\n",clock()/1000);      }

  1. Здрасьте. Плевое задание в пару строк упрямо не хочет функционировать, выдавая Run-Time Check failure #2 - Stack around the variable 's' was corrupted и ноль как результат. C1 2 3 4 5 6 7 8 9 10 11 12 13 #include void main(void) {     char s[20];     int count = 0;     gets(s);     for (int i = 0; s[i] = '\0'; i++)     {         if (s[i] >= '0' || s[i] <= '9')             count++;     }     printf_s("%d", count); }Что я делаю не так?