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

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

Войти
Регистрация
Восстановить пароль
 
xexew
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 76
#1

Строки - C++

21.10.2011, 01:18. Просмотров 265. Ответов 6
Метки нет (Все метки)

Программе подается строка, состоящая из слов отделенных различным количеством пробелов. Требуется вывести на экран ту же самую строку, но слова должны быть разделены одним пробелом.

Ребят, наведите на мысль, как можно это сделать? Просто записывать слова во второй массив и разделять каждое слово пробелом? или можно сделать все в одном массиве?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2011, 01:18     Строки
Посмотрите здесь:

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки - Java
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки. 2)Дана...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки - C++ Builder
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и надо через (n) символов первой строки...

Сравнить строки, первый несовпадающий элемент строки-приемника записать в регистр AL, строки-источника - в DL - Assembler
Помогите написать программу на ассемблерене совсем еще разобрался с этим задание: Ввести с клавиатуры две строки одноразрядных...

Слить две строки, вставив символы одной строки между символами другой строки - Pascal
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой индекс j, что aj < bj, а для всех i < j ai =...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках. - Turbo Pascal
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши "Ввод". Программа должна определить длину введенной...

Строки. Если в конце строки точка отсутствует, то найти слово, заканчивающееся точкой и перенести его в конец строки. - Pascal
Дана строка, состоящая из слов и содержащая одну точку в конце одного из слов. Если в конце строки точка отсутствует, то найти слово,...

Строки. Определить длину введенной строки, если длина кратна 4, то первая часть строки меняется местами со второй - Turbo Pascal
Ввести с клавиатуры строку символов.признак окончания ввода строки-нажатие клавиши ввод.Программа должна определить длину введенной строки...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
21.10.2011, 01:37     Строки #2
Можно и так и так. Но первый способ проще.
xexew
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 76
21.10.2011, 01:52  [ТС]     Строки #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int _tmain(int argc, _TCHAR* argv[])
{   setlocale(0,"");
    
    char a[100], b[100];
    cout << "Введите строку: \n";
    gets(a);
    int i=0, j=0,k;
    int len=strlen(a);
    
    for (i = 0; i < len; i++)
        if(a[i]!=' ')       
            b[j++]=a[i];
        else b[j]=' ';
            k=j;
 
    for(int j = 0; j < k; j++)
        cout << b[j];
    cout << endl;
    
    return 0;
}
Что-то не хочет он пробелы ставить)
jonson
232 / 205 / 61
Регистрация: 18.03.2010
Сообщений: 749
21.10.2011, 02:17     Строки #4
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
int main()
{     
     setlocale(0,"");
     char a[100], b[100];
     cout << "Введите строку: \n";
     gets(a);
     int i=0, j=0,k;
     int len=strlen(a);
 
     for (i = 0; i < len; i++)
    if(a[i]!=' ')           
        b[j++]=a[i];
    else
    {
        b[j++]=' ';
        for(int y=i; y<len; ++y)
            if( a[y+1] == ' ' )
                ++i;            
            else
                break;
    }
     k=j;
     for(int j = 0; j < k; j++)
    cout << b[j];
     cout << endl;
     system("pause");
     return 0;
}
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
21.10.2011, 02:21     Строки #5
Если вам можно пользоваться стандартными функциями обработки строк, то вот:
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
#include <iostream>
#include <string>
 
int main()
{
    setlocale( LC_ALL, "rus" );
 
    const int size = 100;
    char str[ size ] = { 0 };
    std::cout << "Введите строку: ";
    std::cin.getline( str, size, '\n' );
 
    char resultStr[ size ] = { 0 };
    int length = 0;
    for( char *tokenPtr = strtok( str, " " ); tokenPtr != NULL; tokenPtr = strtok( NULL, " " ) )
    {
        strcpy( resultStr + length, tokenPtr );
        length += strlen( tokenPtr );
        resultStr[ length ] = ' ';
        resultStr[ length + 1 ] = '\0';
        ++length;
    }
    resultStr[ length - 1 ] = '\0';
 
    std::cout << resultStr << std::endl;
    system( "pause" );
    return 0;
}
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
21.10.2011, 02:33     Строки #6
третий способ:
бить на части и сразу выводить без массива.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2011, 02:41     Строки
Еще ссылки по теме:

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

Строки. Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1 - Turbo Pascal
Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1.В строке S подсчитать кол-во вхождений строки S1.

БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки - PascalABC.NET
Нужно создать базу данных в паскале, с операциями: добавление новой строки, удаление строки, редактирование имеющей строки. Желательно с...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: &quot;Добавить строки, начиная...

Строки. Даны строки S и So. Найти количество вхождений строки So в строку S - Turbo Pascal
Помогите пожалуйста, как сделать эту задачу без этих вот строчек... B:=TRUE; и без команды INC... Вот условие задачи: Даны строки S и...


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

Или воспользуйтесь поиском по форуму:
xexew
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 76
21.10.2011, 02:41  [ТС]     Строки #7
с функциями полезно смотреть, но все-таки пока мне по-душе простая, незатейливая программа)
всем спасибо за помощь)
Yandex
Объявления
21.10.2011, 02:41     Строки
Ответ Создать тему
Опции темы

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