С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 5
1

Все слова, которые начинаются с большой буквы, вывести большими буквами

30.12.2014, 17:54. Показов 2401. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста! Нужно в текстовом файле все слова, которые начинаются с большой буквы, вывести большими буквами.
Вот, что есть
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
#include <stdio.h>
#include <stdlib.h>                 
#include <string.h>                
#include <ctype.h>
#include<time.h>    
#include "Prog.c"
 
void Time_Stamp(FILE *f)
{time_t tmp;
tmp=time(NULL);
fprintf(f,"***%s***\n",ctime(&tmp));
}
 
int Letter(char Ch)
{int Count;
char Alphabet[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (Count=0;Count<strlen(Alphabet);Count++)
{if (Ch==Alphabet[Count])
return(1);}
return(0);
}
 
main(int argc, char *argv[])
{int n,Count,Ch,Word_is;
char slovo;
char buffer[30];
 
 
FILE *fin, *fout, *flog; 
 
 
if (argc<2)
{ puts("Недостаточно аргументов");
  printf("Используйте например %s text.txt \n", argv[0]);
  puts("Press Enter."); getchar(); exit(0);
  }
  
sprintf(buffer,"%s.log",argv[0]);
 if ((flog=fopen(buffer,"a"))==NULL)
   { puts("Протокол не открылся. Работа невозможна\n");
     puts("Press Enter."); getchar(); exit(0);
   }
   
   Time_Stamp(flog);
 fputs("Протокол успешно открыт \n",flog);
 fputs("Программа приступает к работе \n",flog);
 puts("Протокол успешно открыт \n");
 puts("Программа приступает к работе \n");
 
 if ((fin=fopen(argv[1],"r"))==NULL)
 {
 
    printf("Ошибка открытия файла %s \n",argv[1]);
    Time_Stamp(flog);
    fprintf(flog,"Ошибка открытия файла %s \n",argv[1]);
    puts("Press Enter."); getchar();exit(0);
    
  }
  
  if ((fout=fopen("text","w"))==NULL)
  {
       printf("Ошибка открытия файла text.txt");
       Time_Stamp(flog);
       fprintf(flog,"Ошибка открытия файла text.txt");
       puts("Press Enter."); getchar(); exit(0);
       
   }
    
    Time_Stamp(flog);
    fprintf(flog,"Все файлы открыты успешно \n");
    printf("Все файлы открыты успешно \n");
    
   //program 
    while(1)
    {Ch=fgetc(fin);
    if(Ch==EOF) break;
    if(!Letter(Ch)&&!Word_is)
    {fputc(Ch,fout);
    continue;}
    if(Letter(Ch)&&!Word_is)
    {buffer[Count]=Ch;
    Count++;
    Word_is=1;
    continue; //slovo est'
    }
    if (Letter(Ch)&&Word_is)
    {buffer[Count]=Ch;
    Count++;
    continue;
    }
    if(!Letter(Ch)&&Word_is) //konec slova
    {buffer[Count]='\0';
    Count=0;
    Word_is=0;
    if (isupper(buffer[Count]))                       // 
    while(1){                                             //думаю ошибка где-то здесь
    buffer[Count]=toupper(buffer[Count]);     //
    fprintf(fout,"%s",buffer);}                     //
    else fprintf(fout,"%s",buffer);
    fputc(Ch,fout);
    }
    }
    
    //printf(" %s",buffer); 
    Time_Stamp(flog);
    fprintf(flog,"Результат");   
    
    fclose(fin);
    fclose(fout);
    
    Time_Stamp(flog);
    fprintf(flog,"Работа завершилась успешно");
    
    fclose(flog);
    puts("Press Enter."); getchar(); exit(0);
    
    fclose(fin);
 }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2014, 17:54
Ответы с готовыми решениями:

Из введенной строки удалить все слова, которые начинаются с большой буквы и вывести полученную строку
#include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; #include...

Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы
Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы и заканчиваются...

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

Вывести все слова которые начинаются с заданной буквы
Помогите пожалуйста написать программу на C# №1) Ввести текст. Вывести все слова которые...

6
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
30.12.2014, 19:08 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <ctype.h>
 
int main()
{
    char word[80];
    FILE* in_file;
    char *c;
 
    in_file=fopen("file.txt", "r");
    while(fscanf(in_file, "%79s", word) != EOF)
    {
        if(islower(word[0])) continue;
        c = word;
        while(isalpha(*c)) putc(toupper(*c++), stdout);
        putc('\n', stdout);
    }
    fclose(in_file);
}
Добавлено через 1 минуту
Файл:
Код
Loremloremlorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in condimentum diam. Cras id odio est. Nam mollis blandit ipsum, vel vehicula libero egestas vitae. Cras enim mauris, auctor malesuada imperdiet in, luctus eu urna. Aenean blandit mauris eu orci pretium fermentum.
Nam erat nunc, suscipit vitae condimentum ac, commodo sit amet urna. Morbi sit amet porttitor justo. Cras vitae scelerisque arcu.
Suspendisse potenti. Mauris nec Tellus quis est semper auctor. Quisque ornare Scelerisque volutpat. Cras at elit luctus, dignissim arcu ac, hendrerit nulla. Sed dictum erat eget condimentum semper. Fusce sollicitudin imperdiet quam, id vehicula sem tempor sed Nunc.
Вывод программы:
Код
LOREMLOREMLOREM
SED
CRAS
NAM
CRAS
AENEAN
NAM
MORBI
CRAS
SUSPENDISSE
MAURIS
TELLUS
QUISQUE
SCELERISQUE
CRAS
SED
FUSCE
NUNC
1
594 / 416 / 136
Регистрация: 02.10.2008
Сообщений: 1,777
Записей в блоге: 1
31.12.2014, 00:06 3
Цитата Сообщение от Velesthau Посмотреть сообщение
while(fscanf(in_file, "%79s", word) != EOF)
Длинна слова может быть больше чем 79 символов(и заранее угадать её невозможно) - зависит от заморочек препода.
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
31.12.2014, 00:18 4
Цитата Сообщение от drfaust Посмотреть сообщение
Длинна слова может быть больше чем 79 символов
Тогда слово просто обрежется. Комментарий ни к чему, это очевидно.

Добавлено через 11 секунд
Цитата Сообщение от drfaust Посмотреть сообщение
и заранее угадать её невозможно
И не нужно угадывать.

Добавлено через 1 минуту
Цитата Сообщение от drfaust Посмотреть сообщение
зависит от заморочек препода
Я от заморочек его препода не завишу.
0
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 5
31.12.2014, 15:58  [ТС] 5
а как сделать, чтоб эти слова менялись в исходном файле? Т.е если файл:
Код
Loremloremlorem ipsum dolor Sit amet, consectetur adipiscing elit. Sed
то после комп. этот же файл выглядит так:
Код
LOREMLOREMLOREM ipsum dolor SIT amet, consectetur adipiscing elit. SED
0
529 / 432 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
31.12.2014, 16:08 6
Цитата Сообщение от Didy Посмотреть сообщение
а как сделать, чтоб эти слова менялись в исходном файле?
Соответственно, менять исходный файл. Либо писать в новый и потом подменять исходный. Вопрос конкретно в чем? Писать в файл можно fputs, fputc, fprintf, fwrite.
0
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 5
27.05.2015, 20:26  [ТС] 7
UP!
У нас есть вот такие слова:
Код
Loremloremlorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in condimentum diam. Cras id odio est. Nam mollis blandit ipsum, vel vehicula libero egestas vitae. Cras enim mauris, auctor malesuada imperdiet in, luctus eu urna. Aenean blandit mauris eu orci pretium fermentum.
Nam erat nunc, suscipit vitae condimentum ac, commodo sit amet urna. Morbi sit amet porttitor justo. Cras vitae scelerisque arcu.
Suspendisse potenti. Mauris nec Tellus quis est semper auctor. Quisque ornare Scelerisque volutpat. Cras at elit luctus, dignissim arcu ac, hendrerit nulla. Sed dictum erat eget condimentum semper. Fusce sollicitudin imperdiet quam, id vehicula sem tempor sed Nunc.
и получается выводит на экран:
Код
LOREMLOREMLOREM
SED
CRAS
NAM
CRAS
AENEAN
NAM
MORBI
CRAS
SUSPENDISSE
MAURIS
TELLUS
QUISQUE
SCELERISQUE
CRAS
SED
FUSCE
NUNC
А мне нужно, что бы выводило:
Код
LOREMLOREMLOREM ipsum dolor sit amet, consectetur adipiscing elit. SED in condimentum diam. CRAS id odio est. NAM mollis blandit ipsum, vel vehicula libero egestas vitae. CRAS enim mauris, auctor malesuada imperdiet in, luctus eu urna. AENEAN ....
как сделать? подскажите пожалуйста!
0
27.05.2015, 20:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2015, 20:26
Помогаю со студенческими работами здесь

Вывести на экран все слова, которые начинаются с заглавной буквы
помогите написать программу которая находит и выводит на экран слова которые начинаются с заглавной...

Вывести на экран слова предложения, которые написаны большими буквами
Вывести на экран слова предложения,которые написаны большими буквами.

Вывести на экран слова предложения, которые написаны большими буквами
Вывести на экран слова предложения, которые написаны большими буквами Помогитеееееееееееееееее %-)

Вывести все слова из S, которые начинаются с буквы "С"
Дана строка S, состоящая из слов, разделённых пробелами, и буква c. Выведите все слова из S,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru