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

Удаление пробелов с использованием стандартных библиотек - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
estel
1 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 31
12.05.2012, 19:25     Удаление пробелов с использованием стандартных библиотек #1
У меня есть код удаления пробелов из строки с использованием библиотеки string и перевод полученной строки без пробелов в число, но по условию моей задачи я не должна использовать <string.h>

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

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
 #include <stdio.h> 
 #include <stdlib.h> 
 #include <conio.h>
 //#include <string.h>
 int main()
{
    char str[1024]; 
    long value;
    printf("Enter text\n");
    scanf("%[^\n]",str);//Так можно ввести строку с пробелами
 
 
    for(int i = 0; str[i + 1] != '\0'; i++)
    {
        if(str[i] == ' ')
        if(strcpy(&str[i],&str[i + 1]))
            i--;
    }
 
    printf("String after removing text : %s\n",str);
 
    value = atoi(str);
    printf("%d\n", value);
 
    _getch();
    return 0;
  }
Хотелось бы узнать, как можно перезаписать массив в котором я удаляю пробелы(строка 17 кода) использую стандартные библиотеки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
12.05.2012, 19:33     Удаление пробелов с использованием стандартных библиотек #2
delete
CG
5 / 5 / 1
Регистрация: 10.05.2012
Сообщений: 12
12.05.2012, 19:36     Удаление пробелов с использованием стандартных библиотек #3
C++
1
2
3
4
5
6
7
8
    for(int i = 0;str[i] != '\0'; i++)
    {
       if( isspace( str[i] ) )
             {
        strcpy( &str[i], &str[i + 1] );
          i++;   //      :)
             }
    }
estel
1 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 31
12.05.2012, 19:36  [ТС]     Удаление пробелов с использованием стандартных библиотек #4
Да, но как сделать так, чтобы все работало без нее и без функции strcpy?
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
12.05.2012, 19:37     Удаление пробелов с использованием стандартных библиотек #5
без string.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cstdlib>
 
int main()
{
    char s[] = " 12 34 ", *a = s, *b = s;
    for(; *b = *a; ++a)
    {
        if(*b != ' ') ++b;
    }
    std::cout << atoi(s);
    return 0;
}
estel
1 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 31
12.05.2012, 19:40  [ТС]     Удаление пробелов с использованием стандартных библиотек #6
CG, нет. Этот вариант не подходит

Добавлено через 54 секунды
igorrr37, к сожалению ваш так же ибо мы даже не проходили библиотеку cstdlib
modwind
 Аватар для modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
12.05.2012, 19:42     Удаление пробелов с использованием стандартных библиотек #7
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
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h>
 
 int main()
{
    char str[1024]; 
    long value;
    printf("Enter text\n");
    scanf("%[^\n]",str);//Так можно ввести строку с пробелами
 
    char* src=str;
    char* dst=str;
 
    while (*src)
    {
        if (*src!=' ') {*dst=*src; dst++;}
        src++;
    }
    *dst='\0';
 
    printf("String after removing text : %s\n",str);
 
    value = atoi(str);
    printf("%d\n", value);
 
    _getch();
    return 0;
  }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2012, 19:45     Удаление пробелов с использованием стандартных библиотек
Еще ссылки по теме:

Удаление пробелов C++
Описание стандартных библиотек C++ для работы с SNMP v1 C++
C++ Как называется ресурс содержащий описание стандартных библиотек Microsoft?

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

Или воспользуйтесь поиском по форуму:
estel
1 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 31
12.05.2012, 19:45  [ТС]     Удаление пробелов с использованием стандартных библиотек #8
modwind, спасибо) Оно работает)
Yandex
Объявления
12.05.2012, 19:45     Удаление пробелов с использованием стандартных библиотек
Ответ Создать тему
Опции темы

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