0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 28
1

Переместить первое слово в конец строки

10.04.2014, 19:21. Показов 5687. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно переместить первое слово строки в конец строки (язык си). можно использовать специальные функции из библиотеки string.h

Добавлено через 1 час 15 минут
пытался поменять этот код(здесь нужно переставить в конец строки второе слово),но что-то не получилось.помогите,пожалуйста.
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
#include<stdio.h>
#include<conio.h>
#include<string.h>
 
int main()
{
    char str[]="The best city of Moscow";
    gets(str);
    fflush(stdin);
    int size;
    size=strlen(str)+1;
    int second_words_lenght=0,first_space=0;
    for (int k = 0; k < size; k++)
    {
        if (str[k]==' ')
        {
            if (first_space==0)
            {
                first_space=k;
            }
            else 
            {
                if (second_words_lenght==0)
                {
                    second_words_lenght= k-first_space;
                }           
            }
        }
    }
    for (int k = 0; k < second_words_lenght; k++)
    {
        char tmp=str[first_space];
        for (int l = first_space; l < size-2; l++)
        {
            str[l]=str[l+1];
        }
        str[size-2]=tmp;
    }
    puts(str);
   getch();
    return(0);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2014, 19:21
Ответы с готовыми решениями:

Перенести первое слово каждой строки в ее конец
Нужно перенести первое слово каждой строки в ее конец! Вот моя пограмма, но я не могу понять...

Переставить первое слово в конец строки
В задаче задается строка текста, состоящая из нескольких слов. Слова отделяются последовательностью...

В четных строках перенести первое слово строки в конец строки
Дан какой либо текст. Нужно во всех четных строках перенести первое слово строки в конец строки....

Как в чётных строках файла перенести первое слово строки в конец строки?
Народ кто сможет? Задания на контрольную работу по дисциплине «Операционные системы UNIX»...

5
Чорумфанин
346 / 346 / 320
Регистрация: 06.03.2014
Сообщений: 899
11.04.2014, 17:18 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
#include<stdio.h>
#include<string.h>
 
int main()
{
    char str[]="The best city of Moscow";
    char buf[40];
    gets(str);
    fflush(stdin);
    int k=0,i;
 
    while(str[k]!=' ')
    {
        buf[k]=str[k];
        k++;
    }
    buf[k]='\0';
 
for(i=0;i<strlen(str);i++)
    str[i]=str[i+k+1];
strcat(str," ");
strcat(str,buf);
 
puts(str);
getch();
 
return(0);
}
Добавлено через 25 минут
или так
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
#include<stdio.h>
#include<string.h>
 
int main()
{
    char str[255];
    char buf[255];
    gets(str);
    fflush(stdin);
    int k=0,i;
 
    while(str[k]!=' ')
    {
        buf[k]=str[k];
        k++;
    }
    buf[k]='\0';
 
memmove(str,str+k+1,(strlen(str)-k)*sizeof(char));
strcat(str," ");
strcat(str,buf);
 
printf("%s\n",str);
getch();
 
return(0);
}
1
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 28
11.04.2014, 19:04  [ТС] 3
спасибо большое)
0
430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
12.04.2014, 15:44 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
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
#include <stdio.h>
 
#define LENGTH 255
 
void rotate_string(char* str)
{
    char first = *str;
    char* previous;
    if( first ) {
        do {
            previous = str;
            ++str;
            *previous = *str;
        } while( *str );
        *previous = first;
    }
}
 
char* find_second_word(char* str)
{
    while( *str ) {
        if( *str++ == ' ' ) return str;
    }
    return NULL;
}
 
char* add_space(char* str)
{
    while( *str ) {
        if( *str == '\n' ) {
            *str = ' ';
            return str;
        }
        ++str;
    }
    return NULL;
}
 
int main() {
 
    char buf[LENGTH + 2];
 
    puts("Input phrase");
    fflush(stdin);
    fgets(buf, sizeof(buf), stdin);
 
    char* space = add_space(buf);
    if( !space ) return 1;
    
    char* word = find_second_word(buf);
    if( !word ) return 1;
 
    int rotate = word - buf;
    while( rotate-- ) {
        rotate_string(buf);
    }
 
    *space = '\0';
    puts(buf);
 
    return 0;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12453 / 7478 / 1752
Регистрация: 25.07.2009
Сообщений: 13,748
12.04.2014, 21:18 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* ANSI C 99 */
 
#include <stdio.h>
#include <string.h>
#include <assert.h>
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && scanf("%[^\n]%*c", buf) == 1 ) {
        char * p = strchr(buf, ' ');
        assert ( p && p != buf );
        snprintf(buf + strlen(buf), p - buf + 2, " %s", buf);
        printf("Result: %s\n", (char*)memmove(buf, p + 1, strlen(p)));
    }
    
    return 0;
}
0
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 29
20.05.2014, 23:41 6
Может кто подскажет как переделать этот код что бы переместить последнее слово на место 3его и сдвинуть остальное?
Не получается
0
20.05.2014, 23:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2014, 23:41
Помогаю со студенческими работами здесь

C помощью sed во всех строках перенести первое слово в конец строки
Как в файле с помощью sed во всех строках перенести первое слово в конец строки

Написать программу, которая считывает строку текста и переносит первое слово в конец строки
Написать программу, которая считывает строку текста и переносит первое слово в конец строки. ...

Как переместить символ окончания строки /0 в конец строки?
Это мне нужно сделать, чтоб не появлялись кракозябры. Причем сделать для всех строк подключенного к...

Добавить в конец текстового файла первое и третье слово из исходного текста
В произвольный текстовый файл добавить в конец первое и третье слово из исходного текста.


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

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

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