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

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

Войти
Регистрация
Восстановить пароль
 
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
#1

Подсчитать количество строк, которые начинаются на букву «А» - C++

07.02.2012, 01:23. Просмотров 943. Ответов 7
Метки нет (Все метки)

Создать программу которая выполняет следующие действия:
1) Скопировать из файла F1 в файл F2 все строки, которые не содержат цифры.
2) Подсчитать количество строк, которые начинаются на букву «А» в файле F2.

Добавлено через 49 минут
Второе задание не обязательно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2012, 01:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчитать количество строк, которые начинаются на букву «А» (C++):

Подсчитать количество пучтых строк и количество строк,которые начинаются и оканчиваются на одну и ту же букву. - C++
Дан текстовый файл.Подсчитать количество пучтых строк и количество строк,которые начинаются и оканчиваются на одну и ту же...

Строка содержит текст.подсчитать количество слов которые начинаются на вводимую букву. - C++
Строка содержит текст.подсчитать количество слов которые начинаются на 1-ю вводимую букву.

Посчитать количество строк в файле, которые начинаются и заканчиваются на одну и ту же букву - C++
задание : В исходном текстовом файле «In.txt» посчитать количество строк, которые начинаются и заканчиваются на одну и ту же букву. В...

Подсчитать количество строк, которые начинаются и заканчиваются одинаковыми буквами - C++
Буду благодарен за помощь. Задание: Подсчитать количество строк, которые начинаются и заканчиваются одинаковыми буквами. Строки брать...

Файлы: в текстовом файле подсчитать количество строк, которые начинаются с буквы - C++
В текстовом файле подсчитать количество строк, которые начинаются с буквы «ф».

В текстовом файле подсчитать количество строк которые начинаются и оканчиваются одной и той же буквой - C++
В текстовом файле подсчитать количество строк которые начинаются и оканчиваются одной и той же буквой

7
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
07.02.2012, 02:00 #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <string.h>
 
#define FILENAME_1 "f1.txt"
#define FILENAME_2 "f2.txt"
#define DIGITS "0123456789"
 
int main(void)
{
    FILE* in_file1;
    FILE* in_file2;
 
    int c, n = 0;
    char buf[256] = "";
 
    //----------
 
    if((in_file1 = fopen(FILENAME_1, "r")) == NULL)
    {
        printf("can`t open file \"%s\"\n", FILENAME_1);
        return 1;
    }
 
    if((in_file2 = fopen(FILENAME_2, "w+")) == NULL)
    {
        printf("can`t open file \"%s\"\n", FILENAME_2);
        return 1;
    }
 
    // --------- 1
    while(fgets(buf, sizeof(buf), in_file1) != NULL)
        if(!strpbrk(buf, DIGITS))
            fputs(buf, in_file2);
 
    fclose(in_file1);
 
    // --------- 2
    rewind(in_file2);
    while(fgets(buf, sizeof(buf), in_file2) != NULL)
        if(buf[0] == 'A') ++n;
 
    fclose(in_file2);
    printf("%d\n", n);
 
    return 0;
}
1
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,483
07.02.2012, 02:22 #3
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
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <algorithm>
#include <ctype.h>
#include <string>
using namespace std;
 
 
 
 
 
int main () {
 ifstream iss ("источник.txt");
 ofstream oss ("приёмник.txt");
 string str;
 while(getline(iss, str)) {
  if (find_if (str.begin(), str.end(), [](char i) -> bool { return isdigit(i); })== str.end())
  oss<< str<< endl;
 }
 iss.close();
 oss.close();
 return 0;
}
1
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
07.02.2012, 17:21  [ТС] #4
rangerx - спасибо за написанный Вами код но он не выполняет условия.

Добавлено через 1 минуту
kravam
C++
1
if (find_if (str.begin(), str.end(), [](char i) -> bool { return isdigit(i); })== str.end())
в этой строчке ошибку показывает.
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
07.02.2012, 18:31 #5
Цитата Сообщение от Temikk2 Посмотреть сообщение
спасибо за написанный Вами код но он не выполняет условия.
Например?

Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
if (find_if (str.begin(), str.end(), [](char i) -> bool { return isdigit(i); })== str.end())
лямбда здесь не нужна
C++
1
if(find_if (str.begin(), str.end(), isdigit) == str.end())
0
Temikk2
2 / 2 / 0
Регистрация: 12.12.2011
Сообщений: 128
07.02.2012, 18:39  [ТС] #6
Ну с 1го файла во втором не чо не появляется.
0
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,483
07.02.2012, 19:53 #7
Можно попроще
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
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <algorithm>
#include <ctype.h>
#include <string>
using namespace std;
 
 
bool IoSs (char i) {
 return isdigit(i);
} 
 
 
 
int main () {
 ifstream iss ("источник.txt");
 ofstream oss ("приёмник.txt");
 string str;
 while(getline(iss, str)) {
  if(find_if (str.begin(), str.end(), IoSs) == str.end())
   oss<< str<< endl;
 }
 iss.close();
 oss.close();
 return 0;
}
А с этим
C++
1
if(find_if (str.begin(), str.end(), isdigit) == str.end())
не компилится
1
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
07.02.2012, 21:37 #8
Цитата Сообщение от kravam Посмотреть сообщение
А с этим
C++
1
if(find_if (str.begin(), str.end(), isdigit) == str.end())
не компилится
liveworkspace.org/code/7cb246498886471f99c361fe134d42a8

Добавлено через 20 минут
хотя, если использовать using namespace std; код действительно не компилируется(по причине конфликта с std::isdigit из <locale>). В таком случае следует сделать так
C++
1
if(find_if(str.begin(), str.end(), static_cast<int(*)(int)>(isdigit)) == str.end())
либо явно указать тип в параметрах шаблона
C++
1
if(find_if<string::iterator, int(*)(int)>(str.begin(), str.end(), isdigit) == str.end())
1
07.02.2012, 21:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2012, 21:37
Привет! Вот еще темы с ответами:

Подсчитать количество слов в тексте, которые начинаются с цифры - C++
Нужна программа, которая будет считать количество слов в тексте, которые начинаются с цифры... Я пробивал написать, но получилось, что...

Подсчитать количество слов в тексте, которые начинаются с гласной буквы - C++
Пожалуйста подскажите что я не так делаю...никак не могу написать ее...:boredom: С клавиатуры вводится строка. Разработать программу,...

Подсчитать количество слов списка, которые начинаются и заканчиваются одной и той же буквой - C++
Как написать программу с функциями, которая подсчитывает количество слов списка Р, которые: а)начинаются и заканчиваются одной и той же...

Подсчитать количество слов, которые начинаются с той же буквы, что и последующее слово - C++
дано предложение,слова в нем разделены пробелом. Подсчитать количество слов,которые начинаются с той же буквы, что и последующее слово.


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

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

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