Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
kolyasik583
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 33
1

Поменять местами первое и последнее слово в строке без использования указателей

09.04.2017, 12:22. Просмотров 1112. Ответов 1

Как я понял нужно использовать пробел как разделитель слов, но как это реализовать я не знаю.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2017, 12:22
Ответы с готовыми решениями:

Строка символов. Поменять местами первое и последнее слово в строке
Есть задание: Дана строка символов. Поменять местами первое и последнее слово в...

Определить в K-ой строке файла fin.txt первое и последнее слово, поменять их местами
Дано: в текстовом файле fin.txt находится текст на русском языке. С клавиатуры...

В каждой строке исходного файла поменять местами первое и последнее слово, и записать в выходной файл
Написать программу, выполняющую чтение текстового файла “input.in” и...

Дано предложение. Поменять местами его первое и последнее слово
Часть 1. Дан числовой массив. Реализовать алгоритм сортировки подсчётом. ...

Дано предложение. Поменять местами его первое и последнее слово
Не знаю как записать во вторую переменную последнее слово. Помогите пожалуйста...

1
Michail97
93 / 40 / 23
Регистрация: 18.09.2016
Сообщений: 372
09.04.2017, 18:42 2
Лучший ответ Сообщение было отмечено kolyasik583 как решение

Решение

Для поиска кол - ва слов в строке.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int CntWord ( char *string )
{
    int i = 0, count = 0; // переменная для счётчика и для кол - ва слов в строке
    Bool flag = TRUE;
    char *ptr = string;
    int cnt = strlen ( ptr );
    while( i < cnt )
    {
        while( flag && ptr[i] == ' ') i++; // на случай абзаца
        if( flag )  flag = FALSE;
        if( ptr[i] == ' ' || ptr[i] == ',' )  count++;
        while( ptr[i] == ' ' || ptr[i] == ',') i++; // увеличиваем значение счётчика пока не встретим допустимый символ
        i++;
    }
    return count + 1;
}
Для записи каждого слова в отдельный массив.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
for ( i = 0, j = 0, k = 0; i < cntword; i++, j++)
    {
        while(  ptr[j] != ' ' && ptr[j] != ',' && j < count )
            {
            str[i][k] = ptr[j];
            k++;
            j++;
            }
            str[i][k] = '\0';
            k = 0;
        while( ptr[j] == ' ' || ptr[j] == ',') { j++; if( !flag ) flag = TRUE; }
        if( flag ) { j = j - 1; flag = FALSE; }
    }
Дальше используешь strcat и клеишь строку, как хочешь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2017, 18:42

Поменять местами первое и последнее слово строки, если слова разделены пробелами
есть вот это, но что то помоему это не на с++ #include &lt;conio.h&gt; #include...

В строке, содержащей не менее двух слов, разделенных пробелом, поменять местами первое и последнее слова
Доброго времени суток! Кто может реализовать данное задание в Си? Строка –...

Как удалить первое и последнее слово в строке
Подскажите, пожалуйста, как можно удалить первое и последнее слово в строке....


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

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

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