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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
#1

Вывод символов в строке - C++

06.04.2011, 13:23. Просмотров 1661. Ответов 14
Метки нет (Все метки)

Доброго времени суток!
Вообщем задача такова есть некая строка в которую вводяться буквы и цыфры. Необходимо чтобы цифра 2 выводилась 2 раза на екран 3 -3раза и тд.
Слепил программу которая удваивает в строке символ заданый с клавиатуры исправьте плз сие чудо

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

char *doublesymbol(char *line);
char *symbol=new char;
void main()
{
char *line=new char[50];


gets(line);
cout << "input symbol ";
gets(symbol);
line=doublesymbol(line);
cout<<line;
cout << "\n";
}

char *doublesymbol(char *line)
{
int i=0;
int size=strlen(line);
char *tmp=new char[2*size+1];

for (i=0;i<size;i++)
{
*(tmp +i)=*line;
if(strspn(line,symbol)>0)
{
*(tmp+i+1)=*line;
i++;
size++;
}
line++;

}

*(tmp+i)='\0';
return tmp;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2011, 13:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод символов в строке (C++):

Вывод лишних символов в строке - C++
Добрый день! Мне нужно решить простую задачу на множественное наследование классов (код приведен ниже). Задачу я решил, наследование...

Вывод данных между определенных символов в строке - C++
Имеется строка с данными: &quot;*имя*файл*размер*...*...&quot; Как считать и вывести сначала &quot;имя&quot; потом &quot;файл&quot;, &quot;размер&quot; и так далее... ...

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

В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3 - C++
и вот 2 задачка. В заданной строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3. ...

Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. - C++
Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. Например: Мама,...

Как настроить ввод русских символов и в дальнейшем вывод этих символов - C++
Подскажите как в этом коде настроить ввод русских символов и в дальнейшем вывод этих символов. Данный код выводит лишь всякую ерунду место...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 13:30 #2
Ну есть два варианта, с преобразованием типов и с функциями <string.h> тебе какой?
0
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 13:32  [ТС] #3
с функциями стринг
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 13:34 #4
Ну смотри, ты о функции
int atoi(const char *s); - Преобразует строку s в число типа int. Возвращает значение или нуль, если строку преобразовать нельзя. Заголовочный файл - stdlib.h
слышал?
0
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 14:01  [ТС] #5
описание функций у меня есть. мне надо получаеться чтобы оно находило цифру любую и показывало ее столько раз подрят взависимости какая цифра. как я понимаю надо еще запускать цикл который будет показывать ето дело подрят
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 14:08 #6
Для начала цикл перебирающий строку, там через if и функцию atoi проверяем является данный элемент цифрой, далее создаем указатель на эту цифру, потом еще будет переменная принимающая значение этого символа, она и будет управляющей в цикле на количество повторений, там относительно не сложно, главное придумать алгоритм Ты сам попробуй, а я тебе подскажу, если что
0
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 15:03  [ТС] #7
дето так?
char *doublesymbol(char *line);
char *symbols="0123456789";
void main()
{
char *line=new char[50];

cout << "input line : ";
gets(line);
cout << " \n";
line=doublesymbol(line);
cout<<line;
cout << "\n";
}

char *doublesymbol(char *line)
{
int i=0;
int size=strlen(line);
char *tmp=new char[2*size+1];
int value; //переменная для цикла
for (i=0;i<size;i++)//цикл переберающий символы
{
*(tmp +i)=*line;
if(atoi(symbols))// условие перевода символа в цифру
{
*(tmp+i)=*line;
value=*tmp;
while(value<i)
{
cout << value;
}
i++;
size++;
}
line++;

}

*(tmp+i)='\0';
return tmp;
}

поправь немного ) оно все равно 2 раза выводит все символы на екран
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 15:40 #8
Это нам не нужно
C++
1
char *symbols="0123456789";
C++
1
2
if(atoi(line[i])!=NULL)
*ptr1=line[i];
Добавлено через 46 секунд
И пользуйся ВВ кодами.
Добавлено через 1 минуту
C++
1
2
3
4
int a=atoi(ptr1);
while (a>0)
strncpy(line,ptr1,1);
a--;
Попробуй сам это применить в коде, спрашивай что не понятно.
0
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 16:01  [ТС] #9
C++
1
2
if(atoi(line[i])!=NULL)     
error C2664: 'atoi' : cannot convert parameter 1 from 'char' to 'const char
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 16:14 #10
попробуй
C++
1
if(atoi(line+1)!=NULL)
Компилятора под рукой нет
0
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 16:24  [ТС] #11
теперь оно удваивает буквы цифры показывает 1 раз

не пойму где происходит удвоение иммено букв
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
for (i=0;i<size;i++)
    {
        *(tmp +i)=*line;
    if(atoi(line+1)!=NULL)
        {
        
        *(tmp+i+1)=*line;
        *ptr1=line[i];
        while(value>0)
        {
            strncpy(line,ptr1,1);
        }
        i++;
        size++;
        }   
        line++;
        
    }
        
    *(tmp+i)='\0';
    return tmp;
}
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 16:45 #12
хм, я если через час домой доберусь попробую подсобить
0
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 17:01  [ТС] #13
оке жду )
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 19:12 #14
скинь весь код
0
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
07.04.2011, 15:13  [ТС] #15
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
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
 
char *doublesymbol(char *line);
void main()
{
    char *line=new char[50];
    
    cout << "input line : ";
    gets(line);
    cout << " \n";
    line=doublesymbol(line);
    cout<<line;
    cout << "\n";
}
 
char *doublesymbol(char *line)
{
    int i=0;
    char ptr1[50];
    int size=strlen(line);
    char *tmp=new char[2*size+1];
    int value=atoi(ptr1);
    
    for (i=0;i<size;i++)
    {
        *(tmp +i)=*line;
    if(atoi(line+1)!=NULL)
        {
        
        *(tmp+i+1)=*line;
        *ptr1=line[i];
        while(value>0)
        {
            strncpy(line,ptr1,1);
        }
        i++;
        size++;
        }   
        line++;
        
    }
        
    *(tmp+i)='\0';
    return tmp;
}
Добавлено через 1 час 6 минут
апппп

Добавлено через 1 час 0 минут
апппп
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2011, 15:13
Привет! Вот еще темы с ответами:

Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке - C++
Текст, состоящий не более чем из 255 символов, разбейте на строки длиной не более 50 символов в строке. Переносите только на месте...

Найти количество символов всех строк файла и количество символов в определенной строке - C++
Здравствуйте! Я хотел бы попросить помощи в решении задачки! У меня не получается найти количество символов всех строчек и количество...

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

Есть двумерный массив символов, в каждой строке находится номер, мне надо к каждой строке добавить "8029" как это сделать? - C++
Есть двумерный массив символов, в каждой строке находится номер, мне надо к каждой строке добавить &quot;8029&quot; как это сделать? Есть функция...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.04.2011, 15:13
Ответ Создать тему
Опции темы

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