Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 09.07.2012
Сообщений: 14
1

Добавить после каждой цифры 2 нуля

21.07.2012, 20:33. Просмотров 1049. Ответов 3
Метки нет (Все метки)

Строки. Добавить после каждой цифры 2 нуля.
например:
ввели: а1 б2 абв
получили: а100 б200 абв

на данный момент при одной цифре выдает верно+мусор, при двух и более цифрах выдает ересь.

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 <iostream>
#include <ctype.h>
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <string>
#include<conio.h>
using namespace std;
 
main(){
    SetConsoleOutputCP(1251);
    system("chcp 1251");
    char text[1024];
    char text2[1024], text3[1024];
    int  buk=0, jm, jmm, sl2, sl3, jmmm;
    long i,j,sLen;
 
    cout<<"Введите текст: ";
    fflush(stdin);
    gets(text);
    sLen = strlen(text);
 
    for(i=0; i<sLen; i++){
        switch(buk)
        {
        case 0:if(text[i]=='0' || text[i]=='1' || text[i]=='2' || text[i]=='3' || text[i]=='4' || 
        text[i]=='5' || text[i]=='6' || text[i]=='7' || text[i]=='8' || text[i]=='9' ){
        for(j=0; j<=i; j++)
        text2[j]=text[j];
        text2[j]='0';
        text2[j+1]='0';
        sl2=j+1+1;
        jm=j;
 
        for(jmmm=jm, jmm=0; jmmm<sLen; jmmm++, jmm++)
        text3[jmm]=text[jmmm];
        sl3=jmm;
 
 
        for(j=0; j<=sl2; j++)
            text[j]=text2[j];
        
        for(j=sl2, jm=0; jm<=sl3; j++, jm++)
            text[j]=text3[jm];
        
        buk=2;
            } break;
        case 1: buk--;break;
        case 2: buk--;break;
 
        }
    }
 
    cout<<"Текст после смены\n";
    cout<<text<<endl;
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2012, 20:33
Ответы с готовыми решениями:

Добавить знак доллара после каждой цифры
Всем привет, такой вопрос после каздой цифри нужно поставить $, когда текст без цифр все хорошо а...

После каждой цифры в строке добавить букву
код на quickbasic, лучше с обьяснением , пожалуйста. Честно скажу сам придумал, переоценил свои...

Во введенной пользователем строке добавить символ «#» после каждой цифры (0-9)
Не получается, помогите( #include &lt;stdlib.h&gt; int main() {) char str; printf (&quot;Enter...

Вставить 3 звездочки после каждой цифры в строке
Условие задачи: вводить строки, завершение ввода - строка end. Затем в строках добавить *** после...

3
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
21.07.2012, 21:01 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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);  SetConsoleOutputCP(1251);
 
    char text[1024], text_res[1024];
 
    cout << "Введите текст: ";
    cin.getline(text, 1024);
 
    int j=0;
    for (int i=0; i<strlen(text); i++)
    {
        text_res[j++] = text[i];
 
        if (text[i]>='0' && text[i]<='9' )     // если цифра ...
        {
            text_res[j] = text_res[j+1] = '0';
            j += 2;
        }
    }
 
    text_res[j] = '\0';     // завершим строку
 
    cout << text_res << endl;
 
 
    system("pause");
    return 0;
}
1
Миниатюры
Добавить после каждой цифры 2 нуля  
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
21.07.2012, 21:24 3
Вместо этой строчки
C++
1
if (text[i]>='0' && text[i]<='9' )
можно вот так сделать:
C++
1
if ( isdigit(text[i]) )
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10832 / 6643 / 1613
Регистрация: 25.07.2009
Сообщений: 12,420
22.07.2012, 00:09 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
std::string & add_00_after_digits(std::string & str){
    for ( size_t pos = str.find_first_of("0123456789"); pos != std::string::npos; pos = str.find_first_of("0123456789", pos + 3) )
        str.insert(pos + 1, "00");
    return str;
}
 
int main() {
    std::string str;
    
    while ( std::cout << "String: " && std::getline(std::cin, str) && ! str.empty() )
        std::cout << "Result: " << add_00_after_digits(str) << std::endl;
    
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2012, 00:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как взять три цифры после запятой целыми числами но без нуля и запятой
Здравствуйте у меня такая проблема, я создаю рандомное число с float и мне нужно взять три цифры...

Вставить в тексте после каждой цифры ее словесное описание.
Дан текст. Вставить в этом тексте после каждой цифры ее словесное описание.

Вставить в строку после каждой цифры заданную последовательность символов
Введите строку. преобразуйте строку таким образом, что после каждой цифры стояли &quot;!!!&quot;. вывести...

При выводе результата пробел делать после каждой цифры
Здравствуйте!! не могли бы вы мне помочь в выполнении лабораторной работы по ассемблеру(если...


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

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

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