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

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

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

Строки(обработка двумерных массивов) - C++

14.11.2013, 18:23. Просмотров 223. Ответов 1
Метки нет (Все метки)

Ребят помогите пожалуйста есть задачка:
В строке из 50 символов отдельные слова разделены пробелом. Упорядочить строку так, чтобы каждое следующее слово было не короче предыдущего.
Написал как подсчитать слова а дальше не могу
#include<stdio.h>
#include<string.h>
void main()
{
char s[50],d[50];
int i=0,j=0,bw,ew,len;
gets(s); len=strlen(s);
while (i<len)
{
while((s[i]==' ')&&(i<len)) i++;
bw=i;
while((s[i]!=' ')&&(i<len)) i++;
ew=i;
strncpy(d,&s[bw],ew-bw+1);
d[ew-bw+1]=0;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 18:23     Строки(обработка двумерных массивов)
Посмотрите здесь:

Обработка двумерных массивов. Указатели. - C++
помогите сделать. буду благодарен с алгоритмами(блок-схемами)

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

Обработка двумерных массивов. Указатели - C++
Найти наименьший элемент матрицы X (mn) и записать нули в ту строку и столбец, где он находится.

Обработка двумерных массивов данных - C++
Из произвольно заданной матрицы размера 5*5 сформировать построчный одномерный массив из положительных элементов исходной матрицы. Помогите...

Обработка двумерных массивов. Указатели. - C++
Лабораторная работа №5 Обработка двумерных массивов. Указатели. Цель работы: изучение способов описания, ввода-вывода и обработки...

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

Обработка двумерных динамических массивов - C++
Помогите написать программу Даны два двумерных динамических массива одинакового размера. Создать третий динамический массив содержащий...

Обработка двумерных массивов (Вычислить матрицу D, равную произведению элементов матрицы М на константу.) - C++
Дана матрица М (4 5) и константа С. Вычислить матрицу D, равную произведению элементов матрицы М на константу. Помогите плиз))

CUDA: сложение двумерных массивов - C++
Я новичок, как в CUDA, так и в С++. Задача - сложить два одинаковых массива, число строк и столбцов задается с клавиатуры. Я чувствую,...

Заполнение двумерных символьных массивов - C++
Помогите пожалуйста в учебниках про строки вообще мало что пишут, как заполнять массив из нескольких строк, с клавиатуры. Без методов...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
87 / 739 / 75
Регистрация: 11.04.2012
Сообщений: 971
14.11.2013, 19:40     Строки(обработка двумерных массивов) #2
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
46
47
48
49
50
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
typedef struct Word
{
    char word[256];
    int length;
} WORD;
 
template<class T>
void swap(T& p1, T& p2)
 { T _tp = p1; p1 = p2; p2 = _tp; }
 
int main(int argc, char* argv[])
{
    static char str1[256] = "c++ is object oriented programming language\0";
    static char str2[256] = "\0";
 
    printf("str1 = %s\n", str1);
 
    WORD* pWords = new WORD[256];
    memset((void*)pWords, 0x00, sizeof(WORD) * 256);
 
    char* ws = strtok(str1," ");
    for (int i = 0; ws != NULL; i++)
    {
        strcpy(pWords[i].word, ws);
        pWords[i].length = strlen(pWords[i].word);
        ws = strtok(NULL, " ");
    }
 
    for (int t = 0; strcmp("\0",pWords[t].word) < 0; t++)
    {
        int min = t;
        for (int k = t+1; strcmp("\0",pWords[k].word) < 0; k++)
            min = (pWords[k].length < pWords[min].length) ? k : min;
 
        swap<WORD>(pWords[min],pWords[t]);
    }
 
    for (int r = 0; strcmp("\0",pWords[r].word) < 0; r++)
        sprintf(str2, "%s %s",str2,pWords[r].word);
 
    printf("str2 = %s\n", str2);
 
    _getch();
 
    return 0;
}
Миниатюры
Строки(обработка двумерных массивов)  
Yandex
Объявления
14.11.2013, 19:40     Строки(обработка двумерных массивов)
Ответ Создать тему
Опции темы

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