1 / 1 / 1
Регистрация: 07.05.2017
Сообщений: 55
1

Написать программу, которая (без использования библиотечных функций для обработки строк), копировала бы строку

15.05.2017, 15:17. Показов 3410. Ответов 2
Метки нет (Все метки)

Написать программу, которая (без использования библиотечных функций для обработки строк), копировала бы строку введённую пользователем с клавиатуры в новую (максимальная длина строки — 80 символов). При этом в процессе копирования должны отбрасываться все незначащие пробелы в начале и конце строки, а также несколько подряд идущих пробелов должны заменяться на один. Вывести исходную и новую строки на экран.
Для обхода строк использовать указатели.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2017, 15:17
Ответы с готовыми решениями:

Функция Reverse(s) без использования библиотечных функций и индексации
Итак, есть задачка: Написать функцию Reverse(s), которая будет менять порядок элементов в строке s...

Написать программу, которая возводит число в соответствующую степень(без использования стандартных функций)
Кто знает как решить задачу на С++. Нужно через цикл while её решить. Написать программу, которая...

БЕЗ использования библиотечных функций
Помогите написать программу... Написать программу, которая (без использования библиотечных функций...

Частотный словарь без использования библиотечных функций. Файлы
Добрый день, товарищи!:senor: Помогите, пожалуйста, разобраться с программой. Уже ничего не...

2
6044 / 2159 / 753
Регистрация: 10.12.2010
Сообщений: 6,007
Записей в блоге: 3
20.09.2018, 14:31 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>
 
#define N 80
 
void CopyAndProcessString(const char* src, char* dst)
{
    // skip leading spaces
    while ((*src == ' '))
    {
        src++;
    }
 
    // avoid trailing spaces
    const char* end = src;
 
    while (*(end + 1)!= '\0')
    {
        end++;
    }
 
    while (*end == ' ')
    {
        end--;
    }
 
    // copy chars
    const char* start = src;
    while (start <= end)
    {
        if ((*start != ' ') || ((*start == ' ') && (*(dst - 1) != ' ')))
        {
            *dst = *start;
            dst++;
        }
        start++;
    }
    *dst = '\0';
}
 
int main(void)
{
    char s1[N] = "  This is a  very big test   ";
    char s2[N];
 
    CopyAndProcessString(s1, s2);
 
    printf("'%s'\n", s2);
 
    return 0;
}
0
653 / 457 / 212
Регистрация: 06.09.2013
Сообщений: 1,264
21.09.2018, 13:41 3
Сергеей,
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 <stdio.h>
#include <stdlib.h>
 
void scpy(const char *src, char *dst) {
    const char *p = src;
    int space = 1;
    while(*p)
    {
        if(space && *p == ' ') p++;
        else
        {
            space = (*p == ' ');
            *dst++ = *p++;
        }
    }
    if(p != src && *(dst - 1) == ' ') dst--;
    *dst = 0;
}
 
int main()
{
    const char *src = "    Quick    brown    fox     ";
    char dst[100];
    scpy(src, dst);
    printf("%s\n", src);
    printf("%s\n", dst);
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2018, 13:41
Помогаю со студенческими работами здесь

Написать функцию которая копирует строку S1 в строку S2 N раз, без использования Strcopy
Написать функцию которая копирует строку S1 в строку S2 N раз, без использования Strcopy

Написать программу без использования функций
а как можно написать программу на паскале без function const n=20; var a,b:array of integer;...

Строки и использование библиотечных функций для их обработки
Нужно решить на Си. Напечатать слова, входящие в предложение, в алфавитном порядке.

Написать программу без использования массивов и строк!
Написать программу без использования массивов и строк! (x/1!)-(x3/3!)+(x5/5!)+(x7/7!)....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru