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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2009, 11:02   #1
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию Сложение строк.

Надо чтобы программа выводила новую строку, получившуюсю путем сложения половины первой строки и последней четверти второй

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main ()
{
	int n = 8;
	int m = 8;
	char* str1 [n] = "stroka 1";
    char* str2 [m] = "stroka 2";
    char* newstr [6];
	for (int i = 0;i < n/2;i++)
	{
		newstr [i] = str1 [i];
	}
	for (int j = 3*m/4-1; j < m-1;j++)
	{
		newstr [j] = str2 [j];
	}
	printf ("\n");
	for (int k = 0; k < 5;k++)
	{
		printf ("%s", newstr [k]);
	}
}
Что не так?

З.Ы. : Подскажите как тут правильно оформить тегами код?

Строка рассматривается как массив. Библиотеку string.h использовать нельзя

Последний раз редактировалось Stilet; 10.11.2009 в 11:48.
Дырдин вне форума Ответить с цитированием
Старый 10.11.2009, 11:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так пойдет?
Код:
 char s[]="String Odin",s2[]="String dva",q[100];
 strncat(q,s,strlen(s)/2);
 strncat(q,s2,strlen(s)-strlen(s)/4);
q - целевая строка
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2009, 10:52   #3
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Нет. Весь смысл в том, что этот код использует библиотеку(или как там говорится) string.h, а по заданию этого делать нельзя
Дырдин вне форума Ответить с цитированием
Старый 11.11.2009, 11:43   #4
Виталий Серов
Заснувший
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 213
По умолчанию

Вот рабочий вариант, тока замени инклуды и вместо бокса поставь принт...
Вместо lstrlen можно просто числа, но с этими функциями можно строки менять как хочешь...
Код:
#include <windows.h>

void main ()
{
        
        char str1[] = "stroka 1";
        char str2[] = "stroka 2";
        char newstr[10];

        int i_1_max = lstrlen(str1)/2;
        int i_2_max = lstrlen(str2);
        int i_2_min = i_2_max - (i_2_max/4);
        int i_3;
        

        for (i_3 = 0;i_3 < i_1_max;i_3++)
        {
                newstr [i_3] = str1 [i_3];
        }

        for (i_2_min; i_2_min < i_2_max;i_2_min++)
        {
                newstr [i_3++] = str2 [i_2_min];
        }

        MessageBox(0,&newstr,"dsfhdsfldska",MB_OK);
}
Виталий Серов вне форума Ответить с цитированием
Старый 11.11.2009, 12:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
этот код использует библиотеку(или как там говорится) string.h,
Тебе это кт сказал?
Ничего подобного он не использует - это функции классического Си.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2009, 12:38   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Stilet
Цитата:
Ничего подобного он не использует - это функции классического Си.
и все-таки, в сях для использовании этой функции нужно подключить хидер string.h. человек хотел сказать, что нельзя использовать готовую реализацию конкатенации строк, а необходимо написать свою
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 11.11.2009, 12:48   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нельзя использовать готовую реализацию конкатенации строк, а необходимо написать свою
А-а-а тогда ясно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2009, 16:07   #8
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Так как же быть?
Дырдин вне форума Ответить с цитированием
Старый 11.11.2009, 16:18   #9
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Дырдин тебе ведь написали, выше смотри
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 11.11.2009, 16:26   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как как?
Запустить вариант Виталия Серова.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение в StringGrid artemavd Общие вопросы Delphi 1 20.06.2009 20:42
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку Dimak24 Помощь студентам 1 19.12.2008 15:45
Сложение Droid Общие вопросы Delphi 14 07.05.2008 13:23
Excel max 256 строк VS user надо 300 строк Exo Microsoft Office Excel 3 10.01.2008 17:14
Поразрядное сложение AlexBee Общие вопросы C/C++ 1 26.10.2007 22:45