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

Дополнить каждое слова пробелами(по количеству максимального) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Анализ графа http://www.cyberforum.ru/cpp-beginners/thread191526.html
Задача: Граф задaн мaтрицей инциденций. Определить является ли он aнтисимметрическим или полным aнтисимметрическим. Достроить до полного aнтисимметрического грaфа, если он тaковым не является. 6<n<10. Мое понимание задачи: Нужно задать матрицу N x M , состоящую из элементов . Каждый столбец может содержать только три варианта элементов (первый:одну 1 и одну -1, остальные нули, второй: одна 1,...
C++ Сортировки Есть динамичный массив: #include <iostream> #include <ctime> using namespace std; int main() { setlocale(LC_ALL,"Russian"); srand((unsigned)time(NULL)); int *arr; int size; http://www.cyberforum.ru/cpp-beginners/thread191524.html
C++ Шаблон
Всем доброе время суток)) Вот нпаисал прогу: #include <string.h> #include <iostream> using namespace std; template<class T> class List{ private: struct Element{
Дано число n. Найти сумму n-значных чисел C++
Кто может решит такую задачу. Дано число n. Найти сумму n-значных чисел. Ограничениа 0<n<=100. Хочу сказать что эту задачу я решил, просто интересно кто кокой алгоритм придложет.
C++ Удаление узла бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread191442.html
всем привет.вот есть у меня бинарное дерево тока фун-ии добавления и обхода.очень нужно удалени помогите плиз. .cpp #include <iostream> using namespace std; #include "TreeNode.h" int main(void) { TreeNode ob(3); ob.AddElement(5);
C++ Это массив? static int attrListSgl = {GLX_RGBA, GLX_RED_SIZE, 4, GLX_GREEN_SIZE, 4, GLX_BLUE_SIZE, 4, GLX_DEPTH_SIZE, 16, None}; Это массив? подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.11.2010, 23:20     Дополнить каждое слова пробелами(по количеству максимального)
clear C

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
51
52
53
54
55
56
57
58
59
60
#include <string.h>
#include <stdio.h>
#include <malloc.h>
 
#define MAX_STR_LEN 250
#define MAX_WORDS_NUMB 30
 
int main()
{
    char Str[MAX_STR_LEN];
    char Arr[MAX_WORDS_NUMB][MAX_STR_LEN];
    fprintf(stdout, "Enter string\n");
    fgets(Str, MAX_STR_LEN, stdin);
    Str[strlen(Str)]='\0';
    char* ptr=strtok(Str, " ");
    if(ptr)
        strcpy(Arr[0], ptr);
    int cnt=1;
    while(ptr)
    {
        ptr=strtok(0, " ");
        if(ptr)
        {
            strcpy(Arr[cnt], ptr);
            ++cnt;
        }
    }
    int i=0;
    int max_strlen=0;
    for(i; i<cnt; ++i)
    {
        if(i==cnt-1)
        {
            Arr[i][strlen(Arr[i])-1]='\0';
        }
        int t=strlen(Arr[i]);
        if(t>max_strlen)
            max_strlen=t;
    }
    char* String;
    for(i=0; i<cnt; ++i)
    {
        int t=strlen(Arr[i]);
        int p=max_strlen-t;
        if(p!=0)
        {
            String=(char*) malloc(sizeof(char)*(p+1));
            memset(String, ' ', sizeof(char)*p);
            String[p]='\0';
            strcat(Arr[i], String);
            free(String);
        }
    }
    for(i=0; i<cnt; ++i)
    {
        fprintf(stdout, "%s ", Arr[i]);
    }
    fprintf(stdout, "\n");
    return 0;
}
Добавлено через 53 минуты
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <string.h>
#include <stdio.h>
#include <malloc.h>
 
/*Макс длина строки*/
#define MAX_STR_LEN 250
/*Макс кол-во слов*/
#define MAX_WORDS_NUMB 30
 
/*Функция, разделающая строку на слова.
Между словами должны быть пробелы*/
int Token(char* Str, char Arr[][MAX_STR_LEN])
{
    int cnt=0;
    char* ptr=strtok(Str, " ");
    if(ptr)
    {
        strcpy(Arr[cnt], ptr);
        ++cnt;
    }
    while(ptr)
    {
        ptr=strtok(0, " ");
        if(ptr)
        {
            strcpy(Arr[cnt], ptr);
            ++cnt;
        }
    }
    return cnt;
}
/*Функция поиска максимальной длины строки*/
int find_max_len(int cnt, char Arr[][MAX_STR_LEN])
{
    int i=0, t=0, max_strlen=0;
    for(i; i<cnt; ++i)
    {
        if(i==cnt-1)
        {
            /*Убираем последний символ в последнем слове
            - перевод строки. '\n', если по простому.*/
            Arr[i][strlen(Arr[i])-1]='\0';
        }
        t=strlen(Arr[i]);
        if(t>max_strlen)
           max_strlen=t;
    }
    return max_strlen;
}
/*Трансформация строки. Функция добавления пробелов*/
void transform_string(char Arr[][MAX_STR_LEN], int cnt, int max_strlen)
{
    /*Временная строка*/
    char* String;
    int i=0, t=0, p=0;
    for(i; i<cnt; ++i)
    {
        t=strlen(Arr[i]);
        /*Находим насколько символов отличается
        длина i-ого слова от максимальной длины слова*/
        p=max_strlen-t;
        if(p!=0)
        {
            String=(char*) malloc(sizeof(char)*(p+1));
            /*Заполняем p пробелами временную строку*/
            memset(String, ' ', sizeof(char)*p);
            /*Ограничиваем строку нулевым терминатором*/
            String[p]='\0';
            strcat(Arr[i], String);
            free(String);
        }
    }
}
/*Печать измененной строки*/
void print_str(char Arr[][MAX_STR_LEN], int cnt)
{
    int i=0;
    for(i; i<cnt; ++i)
    {
        fprintf(stdout, "%s ", Arr[i]);
    }
    fprintf(stdout, "\n");
}
/*Главная функция*/
int main()
{
    char Str[MAX_STR_LEN];
    char Arr[MAX_WORDS_NUMB][MAX_STR_LEN];
    fprintf(stdout, "Enter string\n");
    fgets(Str, MAX_STR_LEN, stdin);
    int i=0, max_strlen=0;
    int cnt=Token(Str, Arr);
    max_strlen=find_max_len(cnt, Arr);
    transform_string(Arr, cnt, max_strlen);
    print_str(Arr, cnt);
    return 0;
}
 
Текущее время: 06:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru