Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2021, 18:23   #1
dimchas
Пользователь
 
Регистрация: 27.11.2021
Сообщений: 12
По умолчанию язык СИ. Робота с текстом

Добрый день, помогите с программой

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

я сделал только ввод текста
Код:
#include <stdio.h> 
    main(){
    char a[200];
    printf("Enter string:\n");
    scanf("%[^\n]", a);
    printf("%s\n", a);}
dimchas вне форума Ответить с цитированием
Старый 01.12.2021, 19:24   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Вот примерный алгоритм:
1. Описываешь переменные:
bs - индекс первой буквы слова
fs - индекс последней буквы слова
flag - найдено слово
ns - число слов.
2. В цикле, пусть переменная цикла будет m, просматриваешь строку до конца.
flag = 0.
если текущий символ буква и flag не установлен, то: flag = 1; bs = m; fs = m;
если текущий символ буква и flag установлен, то fs = m;
если текущий символ не буква и flag установлен, то: меняем символы, ns = ns + 1, сбрасываем flag
Замечание: Если для просмотра строки использовали цикл while, то перед циклом m = 0, а в конце цикла m = m + 1.
3. Вывалились из цикла. В словах символы заменены, число слов в ns.
Замечание: Следует подумать о последнем символе последнего слова.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 01.12.2021, 20:52   #3
dimchas
Пользователь
 
Регистрация: 27.11.2021
Сообщений: 12
По умолчанию

ViktorR,

сделал только подсчет слов. Подскажете как дальше?

Код:
#include <stdio.h>
#include <string.h>
 
size_t wc(char * str, const char * ee) {
    return ( strtok(str, ee) ) ? 1 + wc(NULL, ee) : 0;
}
 
#define ee "\t\n"
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("%lu word(s).\n", wc(buf, ee));
    
    return 0;
}
dimchas вне форума Ответить с цитированием
Старый 01.12.2021, 22:52   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Алгоритм написал, но помогать в Сях?
Не ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
язык СИ. Робота с текстом dimchas Помощь студентам 0 27.11.2021 20:31
Перевод кода c языка Pascale в язык PHP или в язык JavaScript Javlonka JavaScript, Ajax 1 30.09.2014 22:48
робота с текстом и стороками Рыбчик Помощь студентам 5 18.05.2013 10:36