Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
xexew
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
1

Строки

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

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

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

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки...

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

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки,...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой...

Заданы 2 строки; приписать первое слово второй строки к первой строке
Заданы 2 строки, состоящие из слов, разделенных пробелами. Приписать первое слово второй строки к...

6
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
21.10.2011, 01:37 2
Можно и так и так. Но первый способ проще.
0
xexew
0 / 0 / 2
Регистрация: 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;
}
Что-то не хочет он пробелы ставить)
0
jonson
234 / 207 / 84
Регистрация: 18.03.2010
Сообщений: 750
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;
}
1
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
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;
}
1
OstapBender
584 / 523 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
21.10.2011, 02:33 6
третий способ:
бить на части и сразу выводить без массива.
1
xexew
0 / 0 / 2
Регистрация: 22.02.2011
Сообщений: 76
21.10.2011, 02:41  [ТС] 7
с функциями полезно смотреть, но все-таки пока мне по-душе простая, незатейливая программа)
всем спасибо за помощь)
0
21.10.2011, 02:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2011, 02:41

Как считать строки из файла, если там больше одной строки?
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько,...

Переписать все строки файла удаляя пробелы в конце каждой строки
Дан текстовый файл F.txt. Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в...

Вычислить длину введенной строки и вывести символы строки с четными индексами
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и...


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

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

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