Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sofia
Сообщений: n/a
#1

рекурсивная функция слияния строк - C++

12.01.2009, 20:54. Просмотров 881. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста с рекурсией!

Мне нужно написать программу в C:
получить от пользователя два стринга first_string и second_string(консольное приложение)

1.проверить что каждый из них содержит только символы алфавита( )и они отсортированы по коду Аски.

2.Если да,то соединить оба стринга в новую строку и отсортировать ее по коду Аски.
Нельзя пользоваться никакими циклами,указателями и т.д.,только основными ф-ми библиотеки
<stdio.h> и <string.h> и использовать рекурсию.

Я сделала только часть 1 и возникла проблема в том что происходят лишние обращения к фунции
merge_strings(str1,index1+1,str2,index2,result,index3);

Я не понимаю как правильно делать return

Код
#include <stdio.h>
#include <string.h>

int merge_strings(char str1[255], int index1,char str2[255],int index2, char result[510], int index3);


void main()
{

char first_string[255];
char second_string[255];
int index_1=0;
int index_2=0;
char merge_result[510];
int index_3=0;
int result1;


   printf("Enter first string:\n");
  
   scanf("%s",first_string);
   getchar();
   printf("Enter second string:\n");
   scanf("%s",second_string);
  
   getchar();
   result1=merge_strings(first_string,index_1,second_string,index_2,merge_result,index_3);
   if(result1==1)
   {
       printf("Answer:\n%s\n",merge_result);
   }
   else 
	   printf("Input incorrect\n");
}



int merge_strings(char str1[255], int index1,char str2[255],int index2, char result[510], int index3)
{

int len1,len2,len3;

len1=strlen(str1);
len2=strlen(str2);



	if(index1+1<len1 && index3==0)
	{
      if((str1[index1]>='A' && str1[index1]<='Z') || (str1[index1]>='a' && str1[index1]<='z'))
	  {
		 if((str1[index1+1]>='A' && str1[index1+1]<='Z') || (str1[index1+1]>='a' && str1[index1+1]<='z'))
		 { 

			    if(str1[index1]<str1[index1+1])
				{
                 
				 merge_strings(str1,index1+1,str2,index2,result,index3);
                      
				}
			    else
				 return 0; 

		 }else return 0;

	  }else return 0;

       printf("valid str1\n");
 
	}// end if(index1+1<len1)

	else if(index2+1<len2 && index3==0) //check string2
	{   		       	    		{
          if((str2[index2]>='A' && str2[index2]<='Z') || (str2[index2]>='a' && str2[index2]<='z'))
		  {
		    if((str2[index2+1]>='A' && str2[index2+1]<='Z') || (str2[index2+1]>='a' && str2[index2+1]<='z'))
			{
  
			  if(str2[index2]<str2[index2+1])
			  {
                
				 merge_strings(str1,index1,str2,index2+1,result,index3);                      
			  }
			  else
				return 0;
								 
			}  else return 0;	                     
			                     						   
		  } else return 0;	
				
		} //if(index2+1<len2)
            printf("valid str2\n");
index1=0;
index2=0;
	}// else //check string2

}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2009, 20:54     рекурсивная функция слияния строк
Посмотрите здесь:

Нужна рекурсивная функция для переворачивания строк - C++
Write a recursive function to reverse a string :coffee:

Рекурсивная функция - C++
Написать на языке С рекурсивную функцию вычисляющую количество полных расстановок скобок в произведении n чисел

Рекурсивная функция - C++
Нужна программа,которая рекурсивно переводит числа из десятичной системы в двоичную.

Рекурсивная функция - C++
С клавиатуры вводится массив из 20 элементов. Заменить все отрицательные элементы суммой чётных! int x,h; void input(int i){ ...

рекурсивная функция - C++
Разработать рекурсивную функцию, удаляющую из строки все лишние пробелы. Пробелы считаются лишними, если их подряд идет более двух, если...

Рекурсивная функция - C++
Принять с клавиатуры натуральное число N. Написать рекурсивную функцию, которая будет выводить слово YES, если число N является точной...

рекурсивная функция - C++
Требуется разработать рекурсивную функцию, возвращающую значение для вычисления n-го члена последовательности b1=5, bn+1=bn/n2+n+1 ...

Рекурсивная функция - C++
Нужно написать рекурсивную функцию вычисления \prod |{a}_{i}| где {a}_{i} целочисленный массив {a}_{i} -четное {a}_{i}&lt;0 ...

Рекурсивная функция - C++
Последовательность многочленов определяется рекуррентными соотношениями: Т0(x) = 1, Т1(x) = x, Тn(x) = 2хТn-1(x) – Тn-2(x) ...

Рекурсивная функция - C++
Задача


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru