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

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

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

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

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

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

Зачем тут библиотека <windows.h>?
Дырдин вне форума Ответить с цитированием
Старый 11.11.2009, 16:48   #12
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Для функций lstrlen и MessageBox. Замените их на свои/библиотечные функции и тогда можно убрать инклуд windows.h
netrino вне форума Ответить с цитированием
Старый 11.11.2009, 16:56   #13
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Спасибо за объяснения

Последний раз редактировалось Дырдин; 11.11.2009 в 16:59.
Дырдин вне форума Ответить с цитированием
Старый 11.11.2009, 17:10   #14
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Выводит в конце кракозябры

Код:
#include <stdio.h>
#include <conio.h>
#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];
    }
    printf("\nIshodnaya stroka 1 = %s",str1);
    printf("\nIshodnaya stroka 2 = %s",str2);
    printf("\n%s",newstr);
}

Последний раз редактировалось Дырдин; 11.11.2009 в 17:16.
Дырдин вне форума Ответить с цитированием
Старый 11.11.2009, 17:38   #15
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Как от них избавиться?
Дырдин вне форума Ответить с цитированием
Старый 11.11.2009, 17:43   #16
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Все я понял

Код:
#include <stdio.h>
#include <conio.h>
#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];
    }
    newstr[6]=0;
    printf("Ishodnaya stroka 1 = %s",str1);
    printf("\nIshodnaya stroka 2 = %s",str2);
    printf("\nPolushivshaysya stroka = %s\n",newstr);
}
Дырдин вне форума Ответить с цитированием
Старый 12.11.2009, 19:30   #17
Виталий Серов
Заснувший
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 213
По умолчанию

Ну если хотите вставить заканчивающий нуль, то лучше так
Код:
newstr[i_3++]=0;
В этом случае ноль будет стоять в конце даже если изменить строки.
Виталий Серов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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