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

Функция: удаление из строки символа с заданным номером

25.03.2017, 10:39. Показов 8114. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать функцию, которая удаляет из строки символ с заданным номером
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2017, 10:39
Ответы с готовыми решениями:

Класс строки (удаление из строки слова с заданным номером и символа с заданным номером)
Описать в классе (строки) функции удаления из строки слова с заданным номером и символа с заданным...

Перестановка в конец строки начала каждой строки до символа с заданным номером
Условие задачи: Перестановка в конец строки начала каждой строки до символа с заданным...

Удаление из текста строки с заданным номером
Привет Всем. Очень нужна помощь с одной программой. Нужно из текста удалить строку с заданным...

Удаление строки с заданным номером в матрице
Добрый вечер друзья программисты. Нужно Вычеркнуть строку с заданным номером, не знаю как это...

7
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
25.03.2017, 11:37 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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void deleteSymbolByIndex(char*, unsigned int);
 
int main()
{
  unsigned int index_symbol_for_delete;
  char buffer_string[256], *string = NULL;
 
  printf("Enter string: ");
  fgets(buffer_string, sizeof(buffer_string), stdin);
 
  printf("Enter index symbol for delete: ");
  scanf("%u", &index_symbol_for_delete);
 
  string = malloc(sizeof(char) * strlen(buffer_string));  
  strcpy(string, buffer_string);
 
  deleteSymbolByIndex(string, index_symbol_for_delete);
  printf("%s", string);
 
  free(string);
}
 
void deleteSymbolByIndex(char* s, unsigned int i)
{
  for (; i < strlen(s); ++i)
    s[i] = s[i + 1];
}
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
25.03.2017, 11:54 3
Цитата Сообщение от Nemovok Посмотреть сообщение
C
1
2
3
4
5
void deleteSymbolByIndex(char* s, unsigned int i)
{
  for (; i < strlen(s); ++i)
    s[i] = s[i + 1];
}
C
1
2
3
4
5
6
7
void deleteSymbolByIndex(char* s, size_t i)
{
  char *p1 = &s[i];
  char *p2 = &s[i+1];
  while (*p1++ = *p2++)
      ;
}
0
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,593
Записей в блоге: 51
25.03.2017, 12:04 4
Цитата Сообщение от Nemovok Посмотреть сообщение
for (; i < strlen(s); ++i)
Конечно в си это видеть ужасно. Сразу видно что челоек начинал с паскаля. Главное чтобы на будущее не стало привычкой...
0
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
25.03.2017, 12:25 5
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Конечно в си это видеть ужасно.
Пожалуйста, можно поподробнее?
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
25.03.2017, 12:31 6
Цитата Сообщение от Nemovok Посмотреть сообщение
Пожалуйста, можно поподробнее?
Примерно так
C
1
2
3
4
5
size_t strlen(const char *s) {
    size_t i;
    for (i = 0; s[i] != '\0'; i++) ;
    return i;
}
2
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,593
Записей в блоге: 51
25.03.2017, 12:32 7
Цитата Сообщение от Nemovok Посмотреть сообщение
Пожалуйста, можно поподробнее?
На эту тему есть что почитать у Спольски. В паскале функция определения длины строки в цикле вызывается всего один раз. В языке Си она вызывается при каждом проходе цикла. Ваши программы станут жутко тормозить от этого факта, только и всего.
1
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
25.03.2017, 12:43 8
Теперь понятно. Спасибо.

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
void deleteSymbolByIndex(char* s, size_t i)
{
  size_t length_string = strlen(s);
 
  for (; i < length_string; ++i)
    s[i] = s[i + 1];
}
0
25.03.2017, 12:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2017, 12:43
Помогаю со студенческими работами здесь

В каждое слово строки вставить введённую пользователем букву после символа с заданным номером
Доброго дня всем! В универе задали написать программу, которая после нажатия на кнопку в каждое...

Функция удаляет из строки СЛОВО(не буквы) с заданным номером
я начинающий в с++ помогите ,я пытался сделать но в этом коде я удаляю буквы а мне надо чтобы...

Функция добавления строки и столбца с заданным номером в динамическую матрицу
Напишите пожалуйста функцию добавления строки и столбца в динамический двумерный массив с заданным...

Функция выделяет из строки заданное количество слов, начиная со слова с заданным номером
Помогите написать функцию. Мой код не работает. #define CRT_NO_WARNINGS #include &lt;stdio.h&gt;...

Функция: удаление из строки слова с номером М
Дан текст (2–3 строки) в файле F1. Текст состоит из слов, отделенных друг от друга пробелами....

Функция Word(s,n,l) выделяет из строки s заданное количество l слов, начиная со слова с заданным n номером
Нужно написать код с а)использованием указателей и б)массивов с индексами


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

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