Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 5.00
3xter
0 / 0 / 0
Регистрация: 28.09.2011
Сообщений: 34
#1

Как удалить лидирующие нули? - C++

19.11.2011, 20:30. Просмотров 2787. Ответов 12
Метки нет (Все метки)

Программа разворачивает числа, нужно сделать так, что бы лидирующие нули после переворота убирались, не знаю как :

http://www.cyberforum.ru/cpp-beginners/thread2115098.html



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 <iostream>
#include <cstring>
using namespace std;
 
int main() {
    char buf[80];
    while(cout<<"\nwrite string: ",cin.getline(buf,80)) {
    char *p=buf,tmp;
    char *q=p;
    while( (q+=(strcspn(p," \t")-1))&&*p!='\0') {
    int l=strcspn(p," \t");                     
    for(int i=0;i<(l/2);i++){
        tmp=*p;
        *p=*q;
        *q=tmp;
        p++;q--;
}
    p+=strspn(p+=strcspn(p," \t")," \t");                  
    q=p;} 
                                   
    cout<<buf;}
    system("PAUSE");
    
return 0;}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2011, 20:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как удалить лидирующие нули? (C++):

Убрать лидирующие нули из даты
Доброе время суток. Столкнулся с проблемой при вводе даты Пример:...

Удалить из массива целых чисел все нули
Пожалуйста, помогите решить задачу.Удалить из массива целых чисел все нули....

Удалить из каждой группы идущих подряд цифр нули
удалить из каждой группы идущих подряд цифр нули

Удалить все строки матрицы, которые содержат нули
Дана квадратная матрица целых числе N*N(N-константа), заданная случайным...

Дан массив. Удалить из него нули и после каждого числа, оканчивающегося на 5, вставить 1
Задание: Дан массив. Удалить из него нули и после каждого числа,...

12
alkagolik
Заблокирован
20.11.2011, 00:52 #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
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
 
int main()
{
    char *str = "000000123456";
    char *str1, tmp;
 
    while( *str == '0' )
        ++str;
 
    printf("строка str = %s\n", str);
    tmp = strlen(str);
 
    str1 = malloc(tmp + 1);
    if ( !str1 )
        exit ( -1 );
 
    strcpy(str1, str);
    printf("строка str1 = %s", str1);
 
    return 0;
}
1
3xter
0 / 0 / 0
Регистрация: 28.09.2011
Сообщений: 34
20.11.2011, 23:19  [ТС] #3
а для с++? не могу из С в с++ перевести...
0
alkagolik
Заблокирован
20.11.2011, 23:23 #4
3xter, у вас в программе подключен cstring, он содержит в себе эти функции.
тырц
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
20.11.2011, 23:39 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
 
int main()
{
    std:: string s;
    char s1[50];
    std:: cin >> s;
    int kol=0;
    while (s[kol]=='0' && kol<s.size()-1) kol++;
    s.copy (s1,s.size()-kol,kol);
    s1[s.size()-kol]='\0';
    std:: cout << s1 << "\n";
    system ("pause");
    return 0;
}
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
20.11.2011, 23:59 #6
C++
1
2
3
4
5
char* p = buf;
while(*p == '0') ++p;
 
if(p != buf)
    std::memmove(buf, p, std::strlen(p) + 1);
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
21.11.2011, 00:05 #7
rangerx, а если 000000 ввести?
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
21.11.2011, 00:37 #8
Dani, останется пустая строка(""), я полагаю )
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
21.11.2011, 17:09 #9
rangerx, поэтому надо 0 выводить
0
fasked
Эксперт С++
4976 / 2556 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
21.11.2011, 17:12 #10
alkagolik, где память освобождается? malloc + strcpy = strdup.
0
alkagolik
Заблокирован
21.11.2011, 18:03 #11
fasked, бывает.
0
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
21.11.2011, 19:22 #12
Dani, ну, тогда как-то так
C++
1
2
if(p != buf)
    std::memmove(*p? buf : buf + 1, p, std::strlen(p) + 1);
0
МаксимМВ
C/C++
90 / 90 / 18
Регистрация: 01.07.2010
Сообщений: 281
21.11.2011, 20:11 #13
На C++, не помеси C++ и Си:
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
#include <iostream>
#include <string>
#include <algorithm>
 
using namespace std;
 
bool func_true(char a, char b)
{
    return true;
}
 
class zero_deleter
{
private:
    bool b;
public:
    zero_deleter()
    {
        b = true;
    };
    bool operator () (char c)
    {
        if (b && c=='0')
            return true;
        else
            b = false;
        return false;
    }
};
 
int main(int argc, char **argv)
{
     cout << "Enter string: " << endl;
     string str;
     cin >> str;
     sort(str.begin(), str.end(), func_true);
     str.erase(remove_if(str.begin(), str.end(), zero_deleter()), str.end());
     cout << str << endl;
}
0
21.11.2011, 20:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2011, 20:11
Привет! Вот еще темы с решениями:

Удалить из каждой группы подряд идущих цифр все начальные незначащие нули
Всем доброго дня) я хз как делать эту задачу..помогите плиз..На Borland C for...

Одномерные массивы: Удалить из массива нули и после каждого числа, оканчивающегося на 5, вставить 1
Дан массив. Удалить из него нули и после каждого числа, оканчивающегося на 5,...

Лидирующие минимумы
Помогите, пожалуйста, решить задачу про &quot;Лидирующие минимумы&quot;: Есть матрица...

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


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

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

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