Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Densвы Гость
|
Добавлено: Чт Дек 02 2004 23:35 Заголовок сообщения: Помогите решить простую задачку СРОЧНО!!! |
|
|
Даны строки S1 и S2. Сформировать строку S так, чтобы в нее попеременно вошли четные символы строки S1 и нечетные символы
строки S2. В качестве длины строки S взять длину меньшей из строк S1 и S2. Сформировать строку S двумя способами:
1. с использованием функций библиотеки String.h.
2. работая со строками как с массивами |
|
Вернуться к началу |
|
|
ХР Гость
|
Добавлено: Вт Дек 07 2004 19:19 Заголовок сообщения: |
|
|
Не совсем понятно условие задачи. Если длина конечной строки равна длине наименьшей, то, скажем при условии, что в строке S1 все четные, а в S2 все нечетные получается что длина строки S = min{S1,S2}*2!!! Парадокс! А как быть если скажем в S1 только одно четное число или в S2 1 нечетное???? Напиши поподробнее. |
|
Вернуться к началу |
|
|
AVES
Зарегистрирован: 12.09.2004 Сообщения: 132 Откуда: С-Петербург
|
Добавлено: Ср Дек 08 2004 01:25 Заголовок сообщения: |
|
|
Вот тебе так сказать бета-версия у меня есть полная, но я ее тебе не дам... Должен же ты приложить усилие по написанию лабы. А ты как думал? Сорец на С.
Код: | #include <stdio.h>
#include <string.h>
#define MAX 100
void main(void)
{
char s1[MAX],s2[MAX],s[MAX-1];
int i,j,end_cycle;
i=j=end_cycle=0;
printf("Enter s1 : ");
gets(s1);
printf("Enter s2 : ");
gets(s2);
while ((end_cycle!=1) && (s2[i]!='\0'))
{
s[j]=s1[i];
j++;
i++;
if (s1[i]!='\0')
end_cycle=1;
s[j]=s2[i];
j++;
i++;
}
if (s1[i]=='\0')
strncpy(s+j,s2+i,strlen(s2)-i+1);
else
strncpy(s+j,s1+i,strlen(s1)-i+1);
printf("Result : %s\n\n",s);
}
|
Баги на подабие вышеописанного одрабатывай сам.
Да и strncpy() Надо заменить на кое че др...
ВПЕРЕД!!!! В АТАКУ!!!! |
|
Вернуться к началу |
|
|
|