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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 13:23     Вывод символов в строке #1
Доброго времени суток!
Вообщем задача такова есть некая строка в которую вводяться буквы и цыфры. Необходимо чтобы цифра 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2011, 13:23     Вывод символов в строке
Посмотрите здесь:

C++ Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
Есть двумерный массив символов, в каждой строке находится номер, мне надо к каждой строке добавить "8029" как это сделать? C++
Вывод данных между определенных символов в строке C++
C++ Найти количество символов всех строк файла и количество символов в определенной строке
В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fafle
 Аватар для Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 13:30     Вывод символов в строке #2
Ну есть два варианта, с преобразованием типов и с функциями <string.h> тебе какой?
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 13:32  [ТС]     Вывод символов в строке #3
с функциями стринг
Fafle
 Аватар для Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 13:34     Вывод символов в строке #4
Ну смотри, ты о функции
int atoi(const char *s); - Преобразует строку s в число типа int. Возвращает значение или нуль, если строку преобразовать нельзя. Заголовочный файл - stdlib.h
слышал?
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 14:01  [ТС]     Вывод символов в строке #5
описание функций у меня есть. мне надо получаеться чтобы оно находило цифру любую и показывало ее столько раз подрят взависимости какая цифра. как я понимаю надо еще запускать цикл который будет показывать ето дело подрят
Fafle
 Аватар для Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 14:08     Вывод символов в строке #6
Для начала цикл перебирающий строку, там через if и функцию atoi проверяем является данный элемент цифрой, далее создаем указатель на эту цифру, потом еще будет переменная принимающая значение этого символа, она и будет управляющей в цикле на количество повторений, там относительно не сложно, главное придумать алгоритм Ты сам попробуй, а я тебе подскажу, если что
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 раза выводит все символы на екран
Fafle
 Аватар для 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--;
Попробуй сам это применить в коде, спрашивай что не понятно.
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
Fafle
 Аватар для Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 16:14     Вывод символов в строке #10
попробуй
C++
1
if(atoi(line+1)!=NULL)
Компилятора под рукой нет
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;
}
Fafle
 Аватар для Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 16:45     Вывод символов в строке #12
хм, я если через час домой доберусь попробую подсобить
creicer
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 15
06.04.2011, 17:01  [ТС]     Вывод символов в строке #13
оке жду )
Fafle
 Аватар для Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 19:12     Вывод символов в строке #14
скинь весь код
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2011, 15:13     Вывод символов в строке
Еще ссылки по теме:

Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке C++
C++ Замена символов в строке с while
Вывод лишних символов в строке C++

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

Или воспользуйтесь поиском по форуму:
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 минут
апппп
Yandex
Объявления
07.04.2011, 15:13     Вывод символов в строке
Ответ Создать тему
Опции темы

Текущее время: 15:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru