С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
#1

Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела - C++

05.11.2010, 15:14. Просмотров 1437. Ответов 27
Метки нет (Все метки)

помогите с этой лабой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2010, 15:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела (C++):

Преобразовать строку так, чтобы между словами был ровно один пробел - C++
При реализации программы необходимо использовать функции обработки строк из библиотек stdlib.h и string.h Дана строка-предложение с...

Дана строка S. Создать новую строку, состоящую из символов S, у которой к каждому пробелу добавлено два пробела - C++
Дана строка S. Создать новую строку, состоящую из символов S, у которой к каждому пробелу добавлено два пробела

Дана строка S. Создать новую строку, состоящую из символов S, у кото- рой к каждому пробелу добавлено два пробела - C++
Дана строка S. Создать новую строку, состоящую из символов S, у кото- рой к каждому пробелу добавлено два пробела

Выравнивание строк так, что между ее отдельными словами дополнительно вносятся пробелы - C++
Выравнивание строки заключается в том, что между ее отдельными словами дополнительно вносятся пробелы так,чтобы длина строки стала равной...

В строке между словами вставить вместо пробела запятую - C++
В строке между словами вставить вместо пробела запятую

В строке между словами вставить вместо пробела запятую и пробел - C++
как в строке между словами вставить вместо пробела запятую и пробел? Добавлено через 2 минуты на с++.

27
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,864
05.11.2010, 16:22 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <sstream>
#include <cstdlib>
 
int main(){
    std::string buf;
    std::cout << "String: ";
    std::getline(std::cin, buf);
 
    std::istringstream ist(buf);
    std::ostringstream ost;
    
    while ( ist >> buf )
        ost << buf << "  ";
 
    std::cout << "Result: " << ost.str() << std::endl;
 
    system("pause");
    return 0;
}
1
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
05.11.2010, 16:35  [ТС] #3
а через stdio.h никак?
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,864
05.11.2010, 16:47 #4
Цитата Сообщение от VladimirH Посмотреть сообщение
а через stdio.h никак?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <string.h>
 
int main(void){
    char buf[BUFSIZ], * p;
    
    printf("String: ");
    scanf("%[^\n]", buf);
    printf("Result: ");
    for ( p = strtok(buf, " "); p; p = strtok(NULL, " ") )
        printf("%s  ", p);
    printf("\n");
    
    return 0;
}
1
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
05.11.2010, 18:20  [ТС] #5
спасибо большое!!!
0
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
17.12.2010, 16:44  [ТС] #6
можно пожалуйста ещё пояснения написать...
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
17.12.2010, 16:49 #7
так как-то
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
 
int main(void){
        char buf[BUFSIZ], * p;
        
        printf("String: ");
        scanf("%[^\n]", buf);
        printf("Result: ");
        for ( p = strtok(buf, " "); p; p = strtok(NULL, " ") )//Разделяем введенную нами строку на слова, функцией strtok(), разделителем служит пробел 
                                                             //выводим каждое слово на экран ставя после каждого слова два пробела
                printf("%s  ", p);
        printf("\n");
        
        return 0;
}
1
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
17.12.2010, 22:24  [ТС] #8
спасиб

Добавлено через 3 часа 9 минут
[^\n] что эта штука делает???
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
17.12.2010, 22:30 #9
Цитата Сообщение от VladimirH Посмотреть сообщение
[^\n] что эта штука делает???
Строки* - пост #7
1
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
17.12.2010, 22:37  [ТС] #10
спасиб
0
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.02.2011, 16:12  [ТС] #11
Парни срочно попросили strtok расписать, т.е. написать прогу с тем же смыслом но без него! жду помощи...
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.02.2011, 16:26 #12
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
#include <stdio.h>
 
int mystrlen(const char * s){
  const char * p = s;
  while ( *p )
    ++p;
  return p - s;
}
 
char * mystrchr(const char * s, char ch){
  while ( *s && *s != ch )
    ++s;
  return ( *s ) ? (char*)s : NULL;
}
 
char * mystrtok(char * buf, const char * delim){
  static char * pHead, * pTail, * pRet;
  if ( buf ){
    pHead = buf;
    pTail = pHead + mystrlen(pHead);
    for ( pRet = pHead; pRet < pTail; ++pRet )
      if ( mystrchr(delim, *pRet) )
        *pRet = 0;
  }
  while ( ! *pHead && pHead < pTail )
    ++pHead;
  if ( pHead >= pTail )
    return NULL;
  else {
    pRet = pHead;
    pHead += mystrlen(pHead);
  }
  return pRet;
}
 
int main(void){
  char buf[BUFSIZ], * p;
  printf("String: ");
  scanf("%[^\n]", buf);
  printf("Result: ");
  for ( p = mystrtok(buf, " "); p; p = mystrtok(NULL, " ") )
    printf("%s  ", p);
  printf("\n");
  return 0;
}
0
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.02.2011, 16:28  [ТС] #13
млин зачем так всё усложнять.... там просто нужно было его убрать и проще записать
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.02.2011, 16:31 #14
Цитата Сообщение от VladimirH Посмотреть сообщение
там просто нужно было его убрать и проще записать
Это как ?
0
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.02.2011, 16:32  [ТС] #15
ну как объяснили функции strtok брать и написать без неё

Добавлено через 13 секунд
*убрать
0
24.02.2011, 16:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2011, 16:32
Привет! Вот еще темы с ответами:

В строке между словами вставить вместо пробела запятую и пробел - C++
В строке между словами вставить вместо пробела запятую и пробел.вывести все слова, начинающиеся на букву Z. Добавлено через 13 минут ...

В строке между словами вставить вместо пробела запятую и пробел - C++
скажите, в чем ошибка В строке между словами вставить вместо пробела запятую и пробел. #include &lt;stdafx.h&gt; #include &lt;iostream&gt; ...

В тексте вставить между словами вместо одного пробела запятую и пробел - C++
Доброго времени суток! В С++ я полный ноль. Пытаюсь разобраться со строками. Не могу понять, как это реализовать. Вот что есть сейчас: ...

В символьной строке между словами вставить вместо пробела запятую и пробел - C++
В символьной строке между словами вставить вместо пробела запятую и пробел.


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

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

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