Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2013, 00:44   #1
Оксана5
Новичок
Джуниор
 
Регистрация: 19.10.2013
Сообщений: 1
По умолчанию Функция, которая на вход получает 2 строки, новую строку отправляет обратно

Помогите, пожалуйста. Идет ошибка, не знаю как исправить. Задание: считать две строки,сделать функцию, которая на вход получает 2 строки, если количество гласных в первой больше количества гласных во второй, из первой удаляются гласные на четных местах, получившаяся новая строка отправляется в тело, выводится на экран.

Код:
# include <stdio.h>
# include <string.h>
int fun(char c[20],char d[20])
{
 char *l,*m;
 int i,k,f=0,j=0;
      
 for (i=0; c[i]!='\0';i++)
 if (c[i]=='e'||c[i]=='y'||c[i]=='u'||c[i]=='i'||c[i]=='o'||c[i]=='a') j++;
 
 for (k=0; d[i]!='\0';i++)
 if (d[i]=='e'||d[i]=='y'||d[i]=='u'||d[i]=='i'||d[i]=='o'||d[i]=='a') f++;
 
 i=0;
 if (j>f)       
 {
  while (c[i]!='\0')
   {
    if( (c[i]=='e'||c[i]=='y'||c[i]=='u'||c[i]=='i'||c[i]=='o'||c[i]=='a')&&(i%2==0))
     { 
      c[i]=' ';i++;
     }
   }
 }
 i=0;
 m=&c[0];
 
 while (c[i]!='/0')      
  { 
    if (c[i]!=' ')  {*l=c[i]; i++;}
  }
return(*m);
}
 
int main()
{ 
 char a[20],b[20]; 
 char *v;
 
 int i=0;   
 while (a[i]!=' ')  
  { 
   scanf_s("%c",&a[i]);
   i++;
  }
 i=0;
 while (b[i]!=' ')  
  { 
  scanf_s("%c",&b[i]);
  i++;
  }
 *v=fun(a[20],b[20]);
 
     while (*v!='/0')      
        {  printf("%c",*v);
         v++;
        }
 return 0;
}
Наверно у меня ошибка в указателях, но я не понимаю, как ими пользовоться по отношению к строкам.
Оксана5 вне форума Ответить с цитированием
Старый 19.10.2013, 14:09   #2
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

1) У Вас нет инициализации указателя l в функции fun(), указателя v в функции main()
2)
Код:
*v=fun(a[20],b[20]);
Вы в функцию передаете не адрес (char*), а значение типа char.
Igor95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция получает строку и возвращает число caliente Общие вопросы C/C++ 1 12.05.2013 21:29
функция получае на вход строку чисел, выводит строку символов DellOleg Microsoft Office Access 2 18.02.2012 11:17
Получить из данной строки новую строку, в которой каждый символ продублировать grev_4 Паскаль, Turbo Pascal, PascalABC.NET 3 27.12.2010 23:42
Как перехватить данные, которые отправляет на сервер и получает от него? losticsx Помощь студентам 2 21.08.2010 18:23