Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176

Сформировать исходную строку, в котором содержатся первые буквы слов исходного текста

17.10.2012, 17:20. Показов 1336. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача.

Сформировать исходную строку, в котором содержатся первые буквы слов исходного текста.

Написать это все надо на языке Си.. темой я вроде не ошибся.
Задали задачу а лекции не вычитали про символы.. а лектор уехал на курсы.. помогите.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2012, 17:20
Ответы с готовыми решениями:

Сформировать исходную строку, в котором содержатся последние буквы слов исходного текста
Нужно на си сформировать исходную строку, в котором содержатся последние буквы слов исходного текста. Помогите, пожалуйста. Всю голову...

Сформировать строку, которая содержит последние буквы всех слов исходного текста
Добрый день. Помогите с исправлением ошибки. Нужно сформировать строку, которая выводит последние буквы всех слов исходного текста....

Сформировать матрицу, у которой в каждом столбце содержатся все числа из исходного набора
Даны целые положительные числа M, N и набор из M чисел. Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все...

8
 Аватар для Кот Ангенс
320 / 270 / 128
Регистрация: 24.05.2012
Сообщений: 629
17.10.2012, 17:47
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
#include <stdio.h>
#include <stdlib.h>
 
enum { BUFFER_SIZE = 10 };
 
int main(void) {
    char* s = (char*)malloc(BUFFER_SIZE * sizeof(char));
    unsigned i = 0, sz = BUFFER_SIZE;
    short c;
    char b = 1;
    while ((c = getchar()) != EOF)
        if (c == ' ' || c == '\n')
            b = 1;
        else if (b) {
            s[i++] = c;
            b = 0;
        }
    s[i] = '\0';
 
    /*Действия со строкой:*/
    puts(s);
 
    free(s);
    return 0;
}
Миниатюры
Сформировать исходную строку, в котором содержатся первые буквы слов исходного текста  
1
4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176
17.10.2012, 18:03  [ТС]
а можно по больше комментариев? а то хочется разобрать что бы знать на будущее + мне надо ваш алгоритм перевести в Алгоритмический письменный язык, то есть в псевдо алгоритм ...
Большое спасибо за Код
0
 Аватар для Кот Ангенс
320 / 270 / 128
Регистрация: 24.05.2012
Сообщений: 629
17.10.2012, 18:24
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
#include <stdio.h>
#include <stdlib.h>
 
/*Памяти под строку мы будем выделять блоками по 10 символов*/
enum { BUFFER_SIZE = 10 };
 
int main(void) {
    /*Выделяем начальный блок*/
    char* s = (char*)malloc(BUFFER_SIZE * sizeof(char));
    /*i - текущая позиция записи, sz - текущий размер строки*/
    unsigned i = 0, sz = BUFFER_SIZE;
    short c;
    /*Если 1, записать символ в строку. Если 0, ждать пробела*/
    char b = 1;
    /*Обрабатываем весь входной поток*/
    while ((c = getchar()) != EOF)
        if (c == ' ' || c == '\n')
            /*Если это пробел, устанавливаем флаг*/
            b = 1;
        else if (b) {
            /*Если это не пробел и флаг установлен, записываем символ в строку*/
            s[i++] = c;
            /*Если мы достигли границ строки, выделяем еще 10 символов*/
            if (i == sz)
                s = (char*)realloc(s, (sz += BUFFER_SIZE) * sizeof(char));
            /*Ну и сбрасываем флаг*/
            b = 0;
        }
    /*Завершаем строку нуль-символом*/
    s[i] = '\0';
 
    /*Выполняем действия со строкой:*/
    puts(s);
 
    /*Освобождаем память*/
    free(s);
    return 0;
}
0
20 / 20 / 23
Регистрация: 05.06.2011
Сообщений: 119
17.10.2012, 18:27
Цитата Сообщение от Кот Ангенс Посмотреть сообщение
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
#include <stdio.h>
#include <stdlib.h>
 
enum { BUFFER_SIZE = 10 };
 
int main(void) {
    char* s = (char*)malloc(BUFFER_SIZE * sizeof(char));
    unsigned i = 0, sz = BUFFER_SIZE;
    short c;
    char b = 1;
    while ((c = getchar()) != EOF)
        if (c == ' ' || c == '\n')
            b = 1;
        else if (b) {
            s[i++] = c;
            b = 0;
        }
    s[i] = '\0';
 
    /*Действия со строкой:*/
    puts(s);
 
    free(s);
    return 0;
}
Вопрос почему не
C
1
2
3
while ((c = getchar()) != EOF) {
        if (c == '  ' || c == '\n')
           s[i++] = getchar();
0
 Аватар для Кот Ангенс
320 / 270 / 128
Регистрация: 24.05.2012
Сообщений: 629
18.10.2012, 10:08
Цитата Сообщение от matepuhko Посмотреть сообщение
C
1
2
3
while ((c = getchar()) != EOF) {
    if (c == ' ' || c == '\n')
        s[i++] = getchar();
Так будет неправильно работать при нескольких пробелах подряд.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
18.10.2012, 10:59
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
 
int main(void) {
    char buf[BUFSIZ], str[BUFSIZ], * pWord, * pChar;
    
    while ( printf("Text: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        for ( pChar = str, pWord = strtok(buf, DELIM); pWord != NULL; pWord = strtok(NULL, DELIM) )
            *pChar++ = *pWord;
        *pChar = '\0';
        printf("String: %s\n", str);
    }
    
    return 0;
}
0
4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176
18.10.2012, 13:44  [ТС]
спасибо большое, но можно коментарии написать .. а то встречаю много нового .. хотелось бы понять что к чему
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
18.10.2012, 14:49
Цитата Сообщение от flasher167 Посмотреть сообщение
хотелось бы понять что к чему
Тогда советую прочитать руководство к стандартным функциям fgets, strtok, ну и printf. В двух словах: читается строка (fgets), делится на слова (strtok) и первые буквы из каждого слова копируются в выходную строку ( *pChar++ = *pWord; ). Чтобы понятнее была возня с указателями, рекомендую прочитать главу про указатели и массивы из книги Кернигана и Ритчи "Язык программирования С". Ну и BUFSIZ - считайте, что константа, объявленная где-то в stdio.h или включаемом им файле (суть - число, достаточное, чтобы быть размером массивов символов, представляющих строки).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2012, 14:49
Помогаю со студенческими работами здесь

Сформировать матрицу, у которой в каждой строке содержатся все числа из исходного набора
Помогите разобраться, где ошибка? Даны целые положительные числа M, N и набор из N чисел. Сформировать матрицу размера MxN , у которой...

Сформировать исходную строку, в котором содержатся первые буквы слов исходного текста
Сформировать исходную строку, в котором содержатся первые буквы слов исходного текста Добавлено через 25 минут Как перевести ? и...

Сформировать выходной ряд, в котором находятся первые буквы слов
Помогите написать код С Задание: сформировать выходной ряд в котором находятся первые буквы слов.

Нужно превратить строку: в результирующей строке должны содержатся первые символы всех слов из заданной строки
Задана строка, состоящая из слов. Осуществить следующее превращение строки: в результирующей строке должны содержаться первые символы всех...

Сформировать массив, в котором сначала расположены малые, а затем большие латинские буквы исходного
Дан символьный массив a1,a2,...,ak.Сформировать новый, в котором сначала расположены малые латинскиее буквы, затем большие латинские буквы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru