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

Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Janat
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 17
03.04.2012, 06:29     Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу. #1
String11. Дана непустая строка S. Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу.Помогите решить,кто знает!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2012, 06:29     Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу.
Посмотрите здесь:

Вывести строку, содержащую те же символы, но расположенные в обратном порядке. C++
Создать строку S2, содержащую вначале цифры, а затем другие символы из строки S C++
Вывести строку, содержащую символы заданной строки, между которыми вставлено по одному пробелу C++
C++ Создать новую строку, содержащую вначале символы, а затем цифры из S
C++ Отформатировать текст: каждое предложение с новой строки, между словами - по одному пробелу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
03.04.2012, 06:38     Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу. #2
C++
1
2
3
4
5
string s1("Word");
for(int i = 0;i < s1.size();i++)
cout << s1.at(i) << ' ';
 
cout << endl;
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
03.04.2012, 06:49     Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу. #3
Проверяй подстроки длиной три символа, если второй - пробел, а первый и последний - нет, то выводи первый и последний. Подстроки дёргай в цикле по всем символам исходной строки, кроме последнего и предпоследнего, беря каждый текущий символ строки за первый символ подстроки, по всем символам строки, кроме первого и последнего, беря каждый текущий символ строки за второй символ подстроки, или по всем символам строки, кроме первого и второго, беря каждый текущий символ строки за последний символ подстроки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void f(string s)
{
 int i;
 int L;
 L=s.length();
 for (i=L-1; i>1; --i)
 {
  if ((s[i]!=' ')&(s[i-1]==' ')&(s[i-2]!=' '))
  {
   std::cout<<s[i-2]<<s[i]<<endl;
  }
 }
}
,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void f(char *s)
{
 char *p;
 char *n;
 char *t;
 for(t=s+1, p=s, n=s+2; *n!=0; p=t, t=n, ++n)
 {
  if ((*p!=' ')&(*t==' ')&(*n!=' '))
  {
   std::cout<<*p<<*n<<endl;
  }
 }
}
. В обоих случаях подстроки не явные, то есть их значения ни в какие величины не помещаются, а лишь подразумевается, что такая то группа символов одной строки образует другую строку.
ATEUCT
18 / 18 / 2
Регистрация: 28.02.2012
Сообщений: 35
03.04.2012, 07:37     Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу. #4
а не легче ето всё забить в другую строку?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
int main()
{
    char str[]="aaaaaaaa nnnnn fffffff yyyyyyy        jjj j";
    char str1[255];
    int i, z = 0;
    for(i = 0; i < strlen(str); i++)
        if(str[i] != ' '&& str[i+1] != ' '){
            str1[z] = str[i];
            str1[z+1] = ' ';
            z+=2;
        }
        str1[z-1] = NULL;
    cout << str1;
    return 0;
}
alexey31415
 Аватар для alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
03.04.2012, 18:32     Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу. #5
блин,я не так понял
думал,что нужно символы из массива выести поэлементно,чередуя с пробелами и не заметил,что массив с пробелами
Yandex
Объявления
03.04.2012, 18:32     Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу.
Ответ Создать тему
Опции темы

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