Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Найти количество пар элементов массива, сумма которых нечётна и положительна https://www.cyberforum.ru/ c-beginners/ thread1343221.html
Здравствуйте.Есть задача: Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите алгоритм, позволяющий найти и...
Запись кода программы в текстовый документ C (СИ)
Здравствуйте, у меня возникла проблема с тем как записать код программы в текстовый документ, помогите пожалуйста. Вот код программы: #include <stdio.h> #include <locale.h> main() { int i = 1;...
Закодировать ехе-файл C (СИ)
Здравствуйте, Возникла необходимость закодировать ехе-файл некоторой программы (например компьютерной игры) таким образом чтобы его невозможно было бы запустить до истечения некоторой...
C (СИ) ОС Windows инициировала точку останова в exe С Массивом из Русских букв, программа работает правильно, но оказываться что мне нужен массив Английского алфавита, В результате выдают ошибку "ОС Windows инициировала точку останова в ODM_1.exe."... https://www.cyberforum.ru/ c-beginners/ thread1343148.html
C (СИ) Переставьте элементы массива в обратном порядке https://www.cyberforum.ru/ c-beginners/ thread1343091.html
Дан массив из N элементов. Переставьте элементы в обратном порядке. Нужен код только на си. Кто сможет помочь с ответом буду благодарен
C (СИ) Сортировка чисел в массиве
есть массив, в массиве числа записаны по порядку от 1 до ,,, (каждая цифра обозначает карту) сначала колода карт находится в порядке 123456789.... потом мы меняем порядок ставим по убыванию ...
Шифровка\дешифровка строки с записью в файл C (СИ)
В общем задача такова: Каждая буква "а", "о", "и" заменяется соответственно на "ц", "ш", "щ". При этом при дешифровке должны восстанавливаться только те буквы которые были заменены... в этом и...
C (СИ) Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <math.h> #include <windows.h> #include <malloc.h> int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); https://www.cyberforum.ru/ c-beginners/ thread1343006.html
C (СИ) Некорректная работа программы по работе с файлами - добавляется лишний символ https://www.cyberforum.ru/ c-beginners/ thread1342937.html
Доброго времени суток. Есть вот такая вот программа. Она работает корректно, за исключением одного но: в конце она добавляет символ 'я'. Путем переделки цикла while я выяснил, что компилятор...
C (СИ) Ошибка при выводе результата. Как исправить? Помогите пожалуйста! Не могу найти ошибку. Очень срочно! Компилирует мне он программу правильно, но вот выдаёт не совсем то, что нужно. Заранее благодарю за помощь! Для каждого из слов... https://www.cyberforum.ru/ c-beginners/ thread1342841.html
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 5
0

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

28.12.2014, 17:33. Показов 1801. Ответов 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
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.