Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 5
1

В каждой строке исходного файла поменять местами первое и последнее слово, и записать в выходной файл

28.12.2014, 17:33. Просмотров 1753. Ответов 1
Метки нет (Все метки)


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

Например:
Input.in: Шла Саша по шоссе.
Output.out: шоссе Шла Саша по.

Подсказка: задание будет легко выполнить, если предварительно написать функцию, выделяющую из заданной строки подстроку определенной длины, начиная с заданной позиции. Например:
Int substr(char *src_string, char *output_string, int offset, int length_of_substring);

Текст прораммы:
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
#include <stdio.h>
#include <string.h>
 
int main()
{
char a[80],b[80];
FILE *f;
f = fopen("input.in","r");
fgets(a,80,f);
int i;
for (i=0; i<strlen(a); i++)
{
b[i]=a[strlen(a)-i-1];
}
for (i=0; i<strlen(a); i++)
{
 
}
fclose(f);
f = fopen("output.out","w");
b[strlen(a)] = 0;
fputs(b, f);
fclose(f);
return 0;
}
Добавлено через 2 часа 15 минут
Вот новый вариант, работает только для 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 <string.h>
 
int main()
{
char a[80],b[80],str[80];
FILE *f;
f = fopen("input.in","r");
fgets(a,80,f);
int i,m=0,i2=0, d=0,s=0 ;
 
for (i=0; i<strlen(a); i++) //Меняет порядок букв со словом
{
b[i]=a[strlen(a)-i-1];
}
while(i2<strlen(a)){ //Меняет порядок букв
while (a[m]!=' ' && m<strlen(a))
{
m++;
 
}
 
d=m;
m = strlen(a)-m;
if (m==0)
m=strlen(a);
for(i=strlen(a)-s; a[i]!=' ';i--)
{
 
if(i>=0){
b[i] = a[m-1];
m--;
i2++;
 
}
 
}
if (a[i]==' ')
i2=s+i2;
m = d+1;
s=m+1;
 
}
fclose(f);
f = fopen("output.out","w");
b[strlen(a)] = 0;
fputs(b, f);
fclose(f);
return 0;
}
Добавлено через 1 час 0 минут
Тему клоз, сам исправил
Вот конечный вариант:
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
#include <stdio.h>
#include <string.h>
 
int main()
{
char a[80],b[80];
FILE *f;
f = fopen("input.in","r");
fgets(a,80,f);
int i,m,i2=0;
 
m = strlen(a)+1;
for(i=strlen(a); a[i]!=' '; i--)
{
m--;
}
i2 = m;
for (i=0;m<strlen(a);i++)
{
b[i] = a[m];
m++;
}
for (i=0;i<strlen(a);i++)
{
b[strlen(a)-i2+i+1] = a[i];
//printf("%c",b[i]);
}
 
fclose(f);
f = fopen("output.out","w");
b[strlen(a)] = 0;
for (i=0;i<strlen(a);i++){
fputc(b[i],f);}
fclose(f);
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2014, 17:33
Ответы с готовыми решениями:

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

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

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

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

1
23 / 13 / 47
Регистрация: 23.03.2013
Сообщений: 157
14.01.2015, 18:16 2
у вас пример не соответствует ТЗ. И что будет если будет разделителем слов не пробел, ведь там может быть табуляция или различные пунктуационные знаки или конец строки??? И что будет если сразу после пробела будут стоять еще несколько пробелов или пунктуационный знак???
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2015, 18:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

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

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

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


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

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

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