0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 32

Функция, которая на вход принимает строку и в качестве результата возвращает ее копию

22.09.2015, 11:51. Показов 19080. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать функцию , которая на вход принимает строку и в качестве результата возвращает ее копию так, чтобы в ней не было гласных английских букв и точки с запятой.
Я понимаю что наглость, но просто подскажите сам алгоритм.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.09.2015, 11:51
Ответы с готовыми решениями:

Написать функцию, которая принимает на вход строку и возвращает количество слов в нем
Мне нужно написать функцию, которая принимает на вход строку и возвращает количество слов в нем. Я написал, но преподаватель сказал...

Нужна функция, которая принимает в качестве параметра массив символов char [20] и возвращает число пробелов в нем
Нужна функция, которая принимает в качестве параметра массив символов char и возвращает число пробелов в нем. Внутри функции определить...

Метод, который принимает на вход имя и зарплату и возвращает строку
нужно дополнить код в месте "..."

26
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
23.09.2015, 20:11
Студворк — интернет-сервис помощи студентам
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 <string.h>
 
char *copy_part_str(char *S){
   const char ArrSym[]=";eyuioaEYUIOA";
   const int N = strlen(S);
   int k=0;
 
   for (int i=0;i<N;i++){
    if (strchr(ArrSym,S[i])==NULL && S[i]) S[k++]=S[i];
   }
   S[k]=0;
 
    return S;
}
 
int main() {
 
   const int N=255;
   char S[N];
 
  gets(S);
  printf("%s",copy_part_str(S));
}
Добавлено через 12 минут

Не по теме:

наверное под копией понималась не копия, а вид видоизменения строки.

0
0 / 0 / 3
Регистрация: 31.08.2015
Сообщений: 49
23.09.2015, 20:36
daslex, наверное я это уже сама решила, но спасибо) Мне бы через указатель функции сделать правильно)
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
23.09.2015, 20:40
ээ, а vovamakr, это вы?
0
0 / 0 / 3
Регистрация: 31.08.2015
Сообщений: 49
23.09.2015, 21:06
daslex, если вы автору писати, тогла сори, нет я не он, но я тут решила его задачку и решила удосконалить
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
23.09.2015, 21:32
sswt,
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
#include <stdio.h>
#include <string.h>
#include <malloc.h>
 
   const int N=255; //Максимальная длина строки
 
char *copy_part_str(char *S){
   char *outStr=(char *) malloc (N);
    char *pch = &S[0];
    unsigned k=0;
 
   while (*pch!=0){
      switch (*pch){
        case 'E': case 'Y': case 'U': case 'I': case 'O': case 'A':
        case 'e': case 'y': case 'u': case 'i': case 'o': case 'a':
        case ';':
 
        {
            *pch++;
            continue;  //Переход к следующей итерации цикла
        }
        break; //Этот break относится к switch, а не к циклу. Не путать.
      }
      outStr[k++]=*pch;
    *pch++;
 
 
   }
   outStr[k]=0;  //Обязательно обозначить, что строка закончилась.
 
  return outStr;
}
 
int main() {
 
   char S[N];
   gets(S);
 
   char *pch = copy_part_str(S);
 
   printf("%s%s%s","\n","part_string:\t ",pch);   //Возвращенная копия строки
   printf("%s","\n");
   printf("%s%s","main string:\t ",S);     //Исходная строка осталась нетронутой
   printf("%s","\n");
 
  free(pch);
}
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
23.09.2015, 23:51
Я не пойму, для чего эти извращения с проверкой отдельных букв? Не нравится strchr(), замените циклом по sDictionary.
0
 Аватар для Пытливый Ум
22 / 22 / 16
Регистрация: 04.06.2015
Сообщений: 126
25.09.2015, 12:23
sswt, алгоритм простой.
у вас три строки:
1. входная sInStr
2. строка запретных символов sDictionary
3. строка-результат sOutStr

Вы посимвольно копируете из sInStr в sOutStr и на каждом этапе проверяете, есть ли копируемый символ в sDictionary
если есть, пропускаете его

Длина строки вам не нужна. Строка заканчивается нулём 0x00. Так что работаете в цикле, пока следующий символ не станет равным 0x00
а размер выделяемой памяти сделайте максимальный по входным данным - например максимальная длина входной строки, а если информации о входных данных нет, тогда можно её вычислить по ходу считывания, передавать в эту функцию в качестве параметра и выделять динамичестки соответствующий объём памяти
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2015, 12:23

Напишите функцию, которая принимает три числа в качестве параметров и возвращает их сумму.
Напишите функцию, которая принимает три числа в качестве параметров и возвращает их сумму. Пишите по-русски!

Напишите программу, содержащую функцию, которая принимает два числа в качестве аргументов и возвращает их произведения.
Напишите программу, содержащую функцию, которая принимает два числа в качестве аргументов и возвращает их произведения.

Написать функцию, которая возвращает в качестве результата решение любого квадратного уравнения
Написать функцию, которая возвращает в качестве результата решение любого квадратного уравнения. Прототип функции: ComlpexPair...

Функция, которая принимает в качестве аргумента функцию
Вам уже приходилось писать таблицу умножения. Но на этот раз вас попросили сделать в плюс к таблице умножения еще и таблицу сложения, а...

Функция, которая в качестве параметра принимает массив
Ребята, кто опытные, обращаюсь к вам. Хотела этот массив реализовать через функцию и вывести на экран двумя способами: через return и через...


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

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

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru