Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 21.02.2019
Сообщений: 4
1

существует ли в языке Си функция replace? и если существует то как работает?

26.02.2019, 14:45. Показов 7747. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
А если её нет то каким образом можно изменить числа входящие в массив?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2019, 14:45
Ответы с готовыми решениями:

Определить существует ли треугольник со сторонами а, b, c и если существует, то является ли он равностонним равнобедренным или разносторонним
Определить существует ли треугольник со сторонами а, b, c и если существует, то является ли он...

Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он существует?
Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он...

Если h-файл существует, подключить его, если не существует, проигнорировать
Как это сделать?

Добавить если не существует, показать если существует (SQL-запрос)
Мир всем и привет Как задать sql запрос в adoquery на существование записи: "если есть...

4
10 / 7 / 3
Регистрация: 22.10.2018
Сообщений: 28
Записей в блоге: 1
26.02.2019, 15:00 2
meserygamer, что мешает добавить в си то, чего там нет?
0
603 / 403 / 212
Регистрация: 30.04.2017
Сообщений: 743
26.02.2019, 15:09 3
В си нет такой функции в стандартной библиотеки, но можно написать самому, не такая уж это сложная функция
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
#include <stdio.h>
#include <stdlib.h>
 
void replace(int *first, int *last, int old_value, int new_value)
{
    for (; first != last; ++first) {
        if (*first == old_value) {
            *first = new_value;
        }
    }
}
 
int main() {
    int a[5] = { 1,2,2,3,4};
    for(int i=0; i<5; ++i) {
        printf("%d ", a[i]);
    }
    printf("\n");
    replace(a, a+5, 2, 7);
    for(int i=0; i<5; ++i) {
        printf("%d ", a[i]);
    }
    return 0;
}
1
4003 / 2549 / 429
Регистрация: 09.09.2017
Сообщений: 11,305
28.02.2019, 09:57 4
Ovederax, может, лучше сделать более универсальной?
C
1
2
3
4
5
6
7
8
void replace( void* arr, size_t elem_size, size_t elem_count, void* prev_value, void* new_value){
  uint8_t *temp = (uint8_t*)arr;
  for(size_t i=0; i<elem_count; i++){
    if(memcmp(temp, prev_value, elem_size)==0)
      memcpy(temp, new_value, elem_size);
    temp += elem_size;
  }
}
1
2487 / 1145 / 707
Регистрация: 25.04.2016
Сообщений: 3,289
01.03.2019, 08:03 5
meserygamer, для начала берем и создаем массив.. скажем, пусть это будет массив целых чисел из 5 элементов:
C
1
int array[5];
Теперь заполним его числами, т.е. возьмем каждый элемент массива и положим в него какое-то значение, например:
C
1
array[i] = 0;
такая запись означает, буквально: взять элемент массива array[] под номером i и положить в него число 0. А чтобы заполнить весь массив, лучше воспользоваться циклом:
C
1
2
3
int i;
for (i=0; i<5; i++)
    array[i] = 0;
теперь у нас в каждом элементе массива лежит число 0. А как изменить значение, скажем, второго элемента массива, т..е по сути взять и положить в него другое число? Да точно так же:
C
1
array[1] = 5;
почему мы говорим второй элемент массива, но ставим при этом индекс 1? Да просто потому, что нумерация элементов массива начинается с 0, т.е. номера элементов массива (индексы) из 5 элементов будут: 0, 1, 2, 3, 4

И вот теперь вопрос. А нужна ли в си функция replace?
0
01.03.2019, 08:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2019, 08:03
Помогаю со студенческими работами здесь

Определить существует ли треугольник с такими длинами сторон и, если существует, будет ли он прямоугольным
помогите проверить правильно ли составил программу. т.к на семерке проверить возможности нет ( ...

Добавление записи, если не существует, обновление. если существует
Доброго времени суток! Ситуация такая: Есть файл в который приходит ид ($content_id), нужно...

Выяснить, существует ли треугольник с такими длинами сторон и если существует - вычислить величину всех этих углов.
Даны числа А, B, C. Выяснить, существует ли треугольник с такими длинами сторон и если существует -...

Даны три числа. Существует ли треугольник со данными сторонами, если существует, то найти его периметр и площадь
Даны три числа. Определить, существует ли треугольник со сторонами длиной a, b, c и, если...


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

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