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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
05.11.2010, 15:14     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #1
помогите с этой лабой
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2010, 15:14     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела
Посмотрите здесь:

C++ Преобразовать строку так, чтобы между словами был ровно один пробел
C++ в строке между словами вставить вместо пробела запятую и пробел?
C++ В строке между словами вставить вместо пробела запятую и пробел
В строке между словами вставить вместо пробела запятую C++
C++ Написать программу, которая записывает пятизначное число в строку, с отступом в 3 пробела между каждой цифрой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
05.11.2010, 16:35  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #3
а через stdio.h никак?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
05.11.2010, 18:20  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #5
спасибо большое!!!
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
17.12.2010, 16:44  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #6
можно пожалуйста ещё пояснения написать...
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
}
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
17.12.2010, 22:24  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #8
спасиб

Добавлено через 3 часа 9 минут
[^\n] что эта штука делает???
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.12.2010, 22:30     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #9
Цитата Сообщение от VladimirH Посмотреть сообщение
[^\n] что эта штука делает???
Строки* - пост #7
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
17.12.2010, 22:37  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #10
спасиб
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.02.2011, 16:12  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #11
Парни срочно попросили strtok расписать, т.е. написать прогу с тем же смыслом но без него! жду помощи...
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
}
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.02.2011, 16:28  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #13
млин зачем так всё усложнять.... там просто нужно было его убрать и проще записать
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.02.2011, 16:31     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #14
Цитата Сообщение от VladimirH Посмотреть сообщение
там просто нужно было его убрать и проще записать
Это как ?
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.02.2011, 16:32  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #15
ну как объяснили функции strtok брать и написать без неё

Добавлено через 13 секунд
*убрать
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.02.2011, 16:36     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #16
VladimirH, Я написал без strtok().
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.02.2011, 16:38  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #17
ну знаешь мы как бы начинающие программисты)) а так как ты написал нам навернякак не поверят))
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.02.2011, 16:46     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #18

Не по теме:

VladimirH, зачем в машине всё так сложно? Давайте двигатель из неё уберём, пусть так ездит!



Добавлено через 43 секунды
Вы вообще в курсе, что делает strtok? И если до, то каковы ваши предложения по её "простому убиранию" из кода?
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.02.2011, 16:52  [ТС]     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #19
ну млин... нам нельзя до 7 лабы использовать функции такого типа, а эт только 3 идёт... надо не используя её, написать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2011, 17:02     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.02.2011, 17:02     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела #20
Цитата Сообщение от VladimirH Посмотреть сообщение
ну млин... нам нельзя до 7 лабы использовать функции такого типа
Почему ?
Yandex
Объявления
24.02.2011, 17:02     Написать функцию, преобразующую строку символов так, что между словами всегда находится два пробела
Ответ Создать тему
Опции темы

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