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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
#1

Работа с текстовыми данными - C++

23.01.2011, 14:02. Просмотров 1689. Ответов 28
Метки нет (Все метки)

1 Написать программу, которая читает с клавиатуры строку символов, преобразует ее и выводит результат на дисплей.
2 Если в строке пробелов меньше, чем цифр, удвоить каждый пробел.
Вот с первым заданием я справился там очень легко , а вот как отличить пробел от цифр и как узнать их количество незнаюнезнаю и как удвоить его тоже.
вот 1 задание помогите сделать дальше
C++
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <string.h>
int main(void)
{
    char str[100];
    gets(str);
    printf("%s", str);
    printf("\n");
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2011, 14:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с текстовыми данными (C++):

Работа с текстовыми данными в символьных массивах - C++
Помогите написать программу с помощью строки: В строке символов длиной 50 выявить дублирование букв и выдать их на экран

Работа с текстовыми файлами - C++
Люди добрые кто может подскажите)) Задание: Дан текстовый файл, проставить пробелы после знаков препинания &quot;,.?!&quot; если он отсутствует,...

Работа с текстовыми файлами в С++ - C++
Здравствуйте. На лето задали написать прогу в среде visual studio c++, но этот предмет у меня закончился зимой и я конечно уже забыл...

Работа с текстовыми файлами - C++
Я пишу свой календарь,и у меня задание считать из текстового файла .txt информацию.В текстовом файле записана дата в формате day.month.year...

Работа с текстовыми файлами - C++
Всем доброго дня! Нужна помощь в решении следующей работы: Нужно создать файл, содержащий текст, набранный заглавными английскими...

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

28
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
23.01.2011, 16:15 #16
igorrr37, а если длина вводимой строки неизвестна (и может быть больше сотни)?
1
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
23.01.2011, 16:19 #17
>если длина вводимой строки неизвестна
тогда динамический массив
1
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
23.01.2011, 16:32 #18
igorrr37, какого размера?
Можно пример?
1
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
23.01.2011, 16:45 #19
Цитата Сообщение от igorrr37 Посмотреть сообщение
>если длина вводимой строки неизвестна
тогда динамический массив
если можно пример, как определить длину введенной строки и записать в дин.массив, не используя класс string
1
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
23.01.2011, 18:09  [ТС] #20
Спасибо всем за помощь я разобрался.

Добавлено через 4 минуты
А динамический масив это масив под который мы выделяем память когда нам надо?
И в программе
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
#include <iostream>
using namespace std;
 
int main()
{
    char c[100]={'\0'};
    char d[100]={'\0'};
    cin.getline(c, sizeof(c));
    int probelov=0, zifri=0;
    for(char *a=c; *a!='\0'; a++)
    {
        if(*a==' ')
        {
            ++probelov;
        }
            
        if(isdigit(*a))
        {
            ++zifri;
        }
    }
    printf("probelov=%d\n",probelov);
    printf("zifri=%d\n", zifri);
    if(probelov<zifri)
    {
        for(char* a=c, *b=d; (*b=*a)!='\0'; a++, b++)
        {
            if(*a==' ')
            { 
                *(++b)=' ';
            }
        }
    }
    printf("TEXT-->   %s\n",d);
}
Я её по своему по колхозному переписал.
когда массив
C++
1
char *a
он со звёздочкой значит это одномерный динамический массив?
тогда сколько данных можно ввести также 100? или больше я пробивал программа после гдето 30 не фурычит.
0
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
23.01.2011, 18:15 #21
Цитата Сообщение от Steam.dll Посмотреть сообщение
он со звёздочкой значит это одномерный динамический массив?
нет
это просто указатель, который указывает неизвестно куда

C++
1
2
3
4
char ch ;// элемент типа char
char a[10] ;//одномерный массив элементов типа char
char * p ;//указатель на элемент типа char
char * pp=new char[10];//указатель, который хранит адрес первого элемента одномерного динамического массива элементов типа char
1
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
23.01.2011, 20:06  [ТС] #22
А как выглядит двумерный массив?

Добавлено через 4 минуты
он также как и обычный динамический массив
C++
1
2
3
4
5
6
unsigned char **a;
a=new char*[10];
for(i=0;i<=9;i++)
{
   a[i]=new char[10];
}

?
0
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
23.01.2011, 20:27 #23
Steam.dll,
так выглядит
C++
1
2
ar[10][10]; //двумерный
ar1[10][10][10];//3-мерный и т.д.
но с динамикой такое не проходит,
поэтому приходится создавать массив указателей, где каждый указатель указывает на свой одномерный массив(как у вас сделано в посте выше).
1
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
23.01.2011, 21:21  [ТС] #24
обидно. С пасибо за информацию
0
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
25.01.2011, 21:44  [ТС] #25
А вот в програме
C++
1
2
#include <iostream>
[CPP]using namespace std;
int main()
{
char c[100]={'\0'};
char d[100]={'\0'};
cin.getline(c, sizeof(c));
int probelov=0, zifri=0;
for(char *a=c; *a!='\0'; a++)
{
if(*a==' ')
{
++probelov;
}

if(isdigit(*a))
{
++zifri;
}
}
printf("probelov=%d\n",probelov);
printf("zifri=%d\n", zifri);
if(probelov<zifri)
{
for(char* a=c, *b=d; (*b=*a)!='\0'; a++, b++)
{
if(*a==' ')
{
*(++b)=' ';
}
}
}
printf("TEXT--> %s\n",d);
}[/CPP]
что значит
C++
1
2
3
using namespace std;
 
иchar c[100]={'\0'};  именно вот это  '\0'
0
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
25.01.2011, 22:14 #26
Steam.dll,
1.Юзаем пространство имен std.
чтобы в коде можно было писать cout<<"Hi!";
вместо std::cout<<"Hi";
2.Управляющий символ, служит признаком конца строки и не только...
1
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
25.01.2011, 22:54  [ТС] #27
a cout и cin не работают без using namespace std;
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
25.01.2011, 23:27 #28
Цитата Сообщение от Steam.dll Посмотреть сообщение
a cout и cin не работают без using namespace std;
Вам же написали, что вот так работает

C++
1
std::cin>>n;
1
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
25.01.2011, 23:56  [ТС] #29
Спасибо теперь точно разобрался
0
25.01.2011, 23:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2011, 23:56
Привет! Вот еще темы с ответами:

Работа с текстовыми файлами - C++
Прошу помощи! Необходимо что б программа считывала данные из обычного текстового файла и записывала в нужные переменные. Текстовый файл...

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

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

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


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

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

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