Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
-1 / 0 / 0
Регистрация: 27.10.2021
Сообщений: 18

Программа с $ и его заменой на длину файла

26.11.2022, 13:00. Показов 1767. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание : В именах обычных файлов заменить символ $ на длину файла.
Всем привет! осознаю что данная задачка очень лёгкая, но только начал разбираться и очень мало что понимаю в работе с файлами, как я понял я сначала одним циклом прохожусь по всем обычным файлам, вторым циклом прохожусь и проверяю на наличие $, потом изменяю его имя длиной файла, но пока не очень получается, вроде как продумал как это выглядит в голове, но кода как такового нету.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2022, 13:00
Ответы с готовыми решениями:

Получите файл g, образованный из файла f заменой всех его
Помогите пожалуйста :) Дан символьный файл f. Получите файл g, образованный из файла f заменой всех его: строчных букв одноимёнными...

Получите файл g, образованный из файла f заменой всех его прописных букв одноименными строчными
Дан символьный файл f. Получите файл g, образованный из файла f заменой всех его прописных букв одноименными строчными.

Получить файл g, образованный из файла f заменой всех его прописных букв одноименными строчными
Дан символьный файл f. Получить файл g, образованный из файла f заменой всех его прописных (больших) букв одноименными строчными (малыми) ...

6
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.11.2022, 09:57
Лучший ответ Сообщение было отмечено Grip как решение

Решение

Переименовать обычные файлы (regular file)
1
-1 / 0 / 0
Регистрация: 27.10.2021
Сообщений: 18
28.11.2022, 11:12  [ТС]
Спасибо, но уже вроде как код написал, надо было получше разобраться в функциях, но всё равно спасибо за ответ
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
28.11.2022, 16:45
Цитата Сообщение от Grip Посмотреть сообщение
но уже вроде как код написал, надо было получше разобраться в функциях, но всё равно спасибо за ответ
Приведи свой код, проверим на ошибки, поможем с пониманием что к чему, если вопросы остались.

З.Ы. Тем, кто не выпрашивает готовые лабы/задания, а сам делает - тут всегда готовы помочь.
1
-1 / 0 / 0
Регистрация: 27.10.2021
Сообщений: 18
28.11.2022, 18:47  [ТС]
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
63
64
65
66
67
68
69
70
71
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <stdbool.h>
 
char _itoa(int count, char *str);
 
char _itoa(int count, char *str)
{
for (int i = count; i >= 10; i /= 10)
str++; // go to end of str for record
for (; count > 0;)
{
*str = count % 10 + '0';
str--;
count /= 10;
}
return *str;
}
 
void ListOfFiles(const char *name)
{
const char symbol = '$';
 
DIR *dir;
struct dirent *dirent;
 
if ((dir = opendir(name)) != NULL)
{
while ((dirent = readdir(dir)) != NULL)
{
if (dirent->d_type == DT_REG)
{
char bufferNewName[256] = "dir/";
char currentName[256] = "dir/";
char emptyArr[256] = {0};
char *bufferOfEndStr = dirent->d_name;
char *lenghtStr = emptyArr;
int symbolPlace = -1;
int lenght = strlen(dirent->d_name);
for (int i = 0; symbolPlace == -1 && i < lenght; i++)
{
if (dirent->d_name[i] == symbol)
symbolPlace = i;
bufferOfEndStr++;
};
if (symbolPlace != -1)
{
_itoa(lenght, lenghtStr); // get string length
strcat(currentName, dirent->d_name); // <dir name>/<file name>
strncat(bufferNewName, dirent->d_name, symbolPlace); // <dir name>/<file name without $>
strcat(bufferNewName, lenghtStr); // <dir name>/<file name with lenght>
strcat(bufferNewName, bufferOfEndStr); // <dir name>/<file name with lenght + file name ending>
rename(currentName, bufferNewName);
memset(bufferOfEndStr, 0, sizeof(bufferOfEndStr));
memset(bufferNewName, 0, sizeof(bufferNewName));
}
}
}
if (closedir(dir) == -1)
perror("close dir");
}
else
perror("open dir");
}
 
int main()
{
ListOfFiles("dir");
return 0;
}
0
-1 / 0 / 0
Регистрация: 27.10.2021
Сообщений: 18
03.12.2022, 11:37  [ТС]
Код скинул, а еще я не знаю как цитировать xD
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
03.12.2022, 14:38
Код рабочий, но меняет $ на длину имени файла. Что бы получить длину файла надо использовать man stat
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2022, 14:38
Помогаю со студенческими работами здесь

Получить файл g, образованный из файла f заменой всех его прописных букв одноименными строчными
Дан символьный файл f. Получить файл g, образованный из файла f заменой всех его прописных (больших) букв одноименными строчными (малыми) ...

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

Получить файл g, образованный из файла f заменой всех его прописных букв одноименными строчными
Дан символьный файл f. Получить файл g, образованный из файла f заменой всех его прописных (больших) букв одноименными строчными (малыми).

Получить файл g, образованный из файла f заменой всех его прописных букв одноименными строчными
1. Дан символьный файл f. Получить файл g, образованный из файла f заменой всех его прописных (больших) букв одноименными строчными...

Получить файл j образованный из файла f заменой всех его прописных (больших) букв одноименными строчными
Дан символьный файл f, получить файл j образованый из файла f заменой всех его прописных (больших) букв одноименными строчными (малыми)


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru