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

Заменить пробелы знаком нижнего подчеркивания - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Славик___077
21 / 21 / 3
Регистрация: 30.01.2011
Сообщений: 119
18.04.2011, 23:51     Заменить пробелы знаком нижнего подчеркивания #1
как заменить пробелы знаком _ . Этот код ничего не заменяет (Это присваивание потом заношу в структуру(PhoneBook->data=b))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char b[100];
cin>>b;
 
 for(int z32=0;z32<100;z32++)
 {
  if(b[z32]==' ')
  { cout<<"\n do:"<<b[z32];
    b[z32]='_';
    cout<<"\n posle:"<<b[z32];
 
 
   }
else{
    }}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 23:51     Заменить пробелы знаком нижнего подчеркивания
Посмотрите здесь:

Заменить в матрице нули на пробелы C++
C++ Дан тестовый файл. Вывести его содержимое в другой файл, заменив каждое вхождение пробела на символ нижнего подчеркивания.
C++ Строки. Преобразовать строку, заменяя каждую цифру соответствующим ей числом символов нижнего подчеркивания
Заменить пробелы на точки C++
C++ Заменить все пробелы на тире
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
18.04.2011, 23:52     Заменить пробелы знаком нижнего подчеркивания #2
Славик___077, Еще бы) Ввод то идет без пробелов, какие пробелы он заменять будет? Используйте
C++
1
cin.getline(b, 99);
Славик___077
21 / 21 / 3
Регистрация: 30.01.2011
Сообщений: 119
19.04.2011, 00:14  [ТС]     Заменить пробелы знаком нижнего подчеркивания #3
если по твоему то так надо как я понял
C++
1
2
3
cin>>b;
cin.getline(b,99);
....
если так то когда я ввожу ivan ivanov то оно мне заменяет так _ivanov
как сделать чтобы полностью изменяла ivan_ivanov
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.04.2011, 00:15     Заменить пробелы знаком нижнего подчеркивания #4
Славик___077, Просто оставь
C++
1
cin.getline(b,99);
без
C++
1
cin>>b;
Славик___077
21 / 21 / 3
Регистрация: 30.01.2011
Сообщений: 119
19.04.2011, 00:22  [ТС]     Заменить пробелы знаком нижнего подчеркивания #5
если без cin>>b;то вообще пропускается этот шаг
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
19.04.2011, 00:26     Заменить пробелы знаком нижнего подчеркивания #6
Как сказали выше:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    char b[100];
    cin.getline(b, 100);
    
    cout << b << "\n";
 
    for(int z32=0;z32<100;z32++)
    {
       if(b[z32]==' ')
       {           
          b[z32]='_';         
       }
    }
    cout << b << "\n";
Славик___077
21 / 21 / 3
Регистрация: 30.01.2011
Сообщений: 119
19.04.2011, 00:30  [ТС]     Заменить пробелы знаком нижнего подчеркивания #7
grrrrr, ответ тот же
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
19.04.2011, 00:33     Заменить пробелы знаком нижнего подчеркивания #8
Славик___077, у меня все компилится и результат по Вашему задании.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
19.04.2011, 00:33     Заменить пробелы знаком нижнего подчеркивания #9
Цитата Сообщение от Славик___077 Посмотреть сообщение
если без cin>>b;то вообще пропускается этот шаг
Попробуй написать так
C++
1
2
cin.sync();
cin.getline(b, 99);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2011, 18:15     Заменить пробелы знаком нижнего подчеркивания
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Славик___077
21 / 21 / 3
Регистрация: 30.01.2011
Сообщений: 119
19.04.2011, 18:15  [ТС]     Заменить пробелы знаком нижнего подчеркивания #10
большое всем спасибо заработало

Добавлено через 17 часов 36 минут
подскажите еще как сделать из этого функцию(знаю вопрос тупой)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 
cin.sync();
  cin.getline(b, 100);
  
 for(int z32=0;z32<100;z32++)
    {
       if(b[z32]==' ')
       {
          b[z32]='_';
       }
    }  
   
 PhoneBook->name=b;
Yandex
Объявления
19.04.2011, 18:15     Заменить пробелы знаком нижнего подчеркивания
Ответ Создать тему
Опции темы

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