Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Sofia
0 / 0 / 1
Регистрация: 10.10.2014
Сообщений: 7
#1

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

12.01.2009, 20:54. Просмотров 908. Ответов 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

}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2009, 20:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос рекурсивная функция слияния строк (C++):

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

функция слияния файлов - C++
вообще мне надо сделать сортирову четырех путевым слиянием но это уже хоть что то.... помогите мне разобратся в этом коде с...

Функция слияния двух текстовых файлов - C++
Здравствуйте. Прошу помощи, потому как даже не представляю как можно это реализовать. Задание: Написать функцию слияния двух текстовых...

Составить функцию конкатенации (слияния) двух строк - C++
составить функцию конкатенации (слияния) двух строк.в основной програме использовать эту функцию для слияния четырех строк.

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2009, 20:54
Привет! Вот еще темы с ответами:

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

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

Рекурсивная функция - C++
Написать рекурсивную фукцию вычисления

Рекурсивная функция[] - C++
Доброго времени суток. Мне необходимо написать рекурсивную функцию для решения задачи: Помогите пожалуйста в решении данной...


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

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

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