Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Getchar
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 16
#1

Л/р "Использование строк" - C++

14.03.2011, 11:00. Просмотров 444. Ответов 2
Метки нет (Все метки)

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

код

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
#include "stdafx.h"
#include <stdio.h>
#include <cstring>
#include <iostream>
#include <conio.h> 
#include <windows.h>
#include <ctype.h>
 
 
using namespace std;
int main(){
 
    const int n=100;
    char buf[n],*sl=new char[10];
FILE *in=fopen("Dada.txt","r");
if (!in) return 1;
cout<<(int)'a'<<"==="<<(int)'A';
while (!feof(in))
{
fscanf(in,"%s", &buf);
if ((buf[0]=='a')||(buf[0]=='e')||(buf[0]=='o'))
buf[0]=toupper(buf[0]);
cout<< buf<<' ';
}
return 0;
}

Выполнить упражнения настоящей лабораторной работы, оформив программный продукт в виде многофайлового проекта, используя директивы условной компиляции.
Обработку текста произвести в функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.
Определенное Вами значение должно дописываться к исходному текстовому файлу.
При выводе данных на консоль использовать функции консоли для выделения их цветом.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2011, 11:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Л/р "Использование строк" (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include - C++
Привет. Вступление. Имею небольшой опыт в программировании. Сейчас мне дали разобрать один проект, как пример работы HGE и Box2D. ...

я задал произвольный текст длинной 5 строк, и допустим что я ввел 5 раз букву "П" , какой цикл нужно создать чтобы пометять букву "П" на букву "Р" ? - C++
я задал произвольный текст длинной 5 строк, и допустим что я ввел 5 раз букву &quot;П&quot; , какой цикл нужно создать чтобы пометять букву &quot;П&quot; на...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IrineK
Заблокирован
14.03.2011, 14:44 #2
Если вы используете потоки консольного ввода/вывода cin/cout, то при обработке файлов логичнее пользоваться потоками файлового ввода/вывода ofstream/ifstream.

Пример обработки файла можно посмотреть: В файле заменить каждый символ первого наиболее короткого слова на «*»
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
14.03.2011, 14:51 #3
main.c:
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
#include <stdio.h>
#include <stdlib.h>
 
#include "handleErrors.h"
#include "capitalizeVowels.h"
 
#define ALLOC_STEP 5
#define safeFree(PTR) free(PTR), (PTR) = NULL
 
int main(int argc, char* argv[])
{
    FILE* fp;
    char** lines;
    char line[BUFSIZ];
    
    size_t currSize, size;
 
    currSize = size = 0;
 
    lines = NULL;
    
    if(argc != 2)
    errExit(1, "Usage: `%s' INPUT_FILE.\n", *argv);
 
    if((fp = fopen(argv[1], "a+b")) == NULL)
    errExit(1, "Can't open file `%s' for input.\n", argv[1]);
 
    while(fgets(line, BUFSIZ, fp))
    {
    if(currSize == size)
    {
        size += ALLOC_STEP;
        if((lines = realloc(lines, size * sizeof(char*))) == NULL)
        errExit(1, "Can't allocate memory.\n");
    }
    if((lines[currSize++] = duplicate(line)) == NULL)
        errExit(1, "Can't duplicate line.\n");
    }
 
    if(ferror(fp))
    errExit(1, "Error reading from file `%s'.\n", argv[1]);
    
    for(size = 0; size < currSize; ++size)
    {
    capitalizeVowels(lines[size]);
    if(fputs(lines[size], fp) == EOF)
        errExit(1, "Error writing to file `%s'.\n", argv[1]);
    if(fputs(lines[size], stdout) == EOF)
        errExit(1, "Error writing to stdout.\n", argv[1]);
    
    safeFree(lines[size]);
    }
    
    safeFree(lines);
        
    fclose(fp);
    exit(0);
}
capitalizeVowels.h:
C
1
2
3
4
5
6
7
#ifndef CAPITALIZE_H
#define CAPITALIZE_H
 
char* capitalizeVowels(char*);
char* duplicate(const char*);
 
#endif
capitalizeVowels.c:
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
#include "capitalizeVowels.h"
 
#include <string.h>
#include <stdlib.h>
 
#define VOWELS "aeiouy"
#define DELIMS " \t\n,;?.!()'\"+=-*/&^%@#$"
 
static char* nextWord(char*, char*, const char*);
 
char* capitalizeVowels(char* line)
{
    char* word = NULL;
 
    while(word = nextWord(line, word, DELIMS))
    if(strchr(VOWELS, *word))
        *word += 'A' - 'a';
 
    return line;
}
 
char* duplicate(const char* str)
{
    char* dup = malloc(strlen(str) + 1);
    if(dup)
    strcpy(dup, str);
    return dup;
}
 
static char* nextWord(char* line, char* lastWord, const char* delims)
{
    if(lastWord)
    lastWord = strpbrk(lastWord, delims);
    else
    lastWord = line;
    while(lastWord && *lastWord && strchr(delims, *lastWord))
    ++lastWord;
    return (lastWord && *lastWord ? lastWord : NULL);
}
handleErrors.h:
C
1
2
3
4
5
6
#ifndef HANDLE_ERRORS_H
#define HANDLE_ERRORS_H
 
void errExit(int, const char*, ...);
 
#endif
handleErrors.c:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "handleErrors.h"
 
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
 
void errExit(int code, const char* fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    vfprintf(stderr, fmt, ap);
    va_end(ap);
    if(code)
    exit(code);
}
Пример работы программы:
Bash
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
nameless@nameless-laptop:~/c-sample$ cat txt.txt
       The mode string can also include the letter 'b' either as a last character or as a character between the characters
       in any of the two-character strings described above.  This is strictly  for  compatibility  with  C89  and  has  no
       effect;  the  'b' is ignored on all POSIX conforming systems, including Linux.  (Other systems may treat text files
       and binary files differently, and adding the 'b' may be a good idea if you do I/O to a binary file and expect  that
       your program may be ported to non-Unix environments.)
 
nameless@nameless-laptop:~/c-sample$ ./c-sample txt.txt
       The mode string can Also Include the letter 'b' Either As A last character Or As A character between the characters
       In Any Of the two-character strings described Above.  This Is strictly  for  compatibility  with  C89  And  has  no
       Effect;  the  'b' Is Ignored On All POSIX conforming systems, Including Linux.  (Other systems may treat text files
       And binary files differently, And Adding the 'b' may be A good Idea If You do I/O to A binary file And Expect  that
       Your program may be ported to non-Unix Environments.)
 
nameless@nameless-laptop:~/c-sample$ cat txt.txt
       The mode string can also include the letter 'b' either as a last character or as a character between the characters
       in any of the two-character strings described above.  This is strictly  for  compatibility  with  C89  and  has  no
       effect;  the  'b' is ignored on all POSIX conforming systems, including Linux.  (Other systems may treat text files
       and binary files differently, and adding the 'b' may be a good idea if you do I/O to a binary file and expect  that
       your program may be ported to non-Unix environments.)
 
       The mode string can Also Include the letter 'b' Either As A last character Or As A character between the characters
       In Any Of the two-character strings described Above.  This Is strictly  for  compatibility  with  C89  And  has  no
       Effect;  the  'b' Is Ignored On All POSIX conforming systems, Including Linux.  (Other systems may treat text files
       And binary files differently, And Adding the 'b' may be A good Idea If You do I/O to A binary file And Expect  that
       Your program may be ported to non-Unix Environments.)
 
nameless@nameless-laptop:~/c-sample$


Вывод в консоль не раскрашиваю, ты уж извини.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2011, 14:51
Привет! Вот еще темы с ответами:

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

количество строк начинающих на "А" и заканчивающиеся на "и" - C++
подскажите как найти количество строк начинающих на &quot;А&quot; и заканчивающиеся на &quot;и&quot;. строки считываются с файла. помогите плиз!! ...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru