Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 14.11.2003, 01:09
Artem Brigert вне форума Посмотреть профиль Найти все сообщения от Artem Brigert
  № 1  
Artem Brigert
Banned

Регистрация: Sep 2001
Сообщений: 6,162
По умолчанию кто знает С помогите плиз

Подскажите плиз как можно поизящнее написать примерно такой код?

Код:
# include <stdio.h>

void stradd(char*,char*);
int main()
{
	int i;
	char text1[100];
	char text2[21];

	printf("Erster Text? ");

	for (i=0; i<100; i++)
	{
		scanf("%c",&text1[i]);
		if((text1[i] !='\n') && (i<100))
			continue;
		else
		{
		text1[i]='\0';
		break;
		}
	}


printf("Zweiter Text?");

	for (i=0; i<21; i++)
	{
		scanf("%c",&text2[i]);
		if((text2[i] !='\n') && (i<21))
			continue;
		else
		{
		text2[i]='\0';
		break;
		}
	}

stradd(text1,text2);
printf("Nach der Verkettung: %s\n",text1);

return 0;
}


void stradd(char *z,char *q)
{
	while(*z)
		z++;
	while(*z++ = *q++)
		;
}

Старый 14.11.2003, 14:20
mort вне форума Посмотреть профиль Отправить личное сообщение для mort Найти все сообщения от mort
  № 2  
mort

Регистрация: Jun 2002
Сообщений: 391
Странно выглядят подобные операции с функциями форматированного ввода.
Данный код корректно работать не будет.

Старый 14.11.2003, 14:29
mort вне форума Посмотреть профиль Отправить личное сообщение для mort Найти все сообщения от mort
  № 3  
mort

Регистрация: Jun 2002
Сообщений: 391
Хотя, если внимания обращать не будут и задача была поставлена сделать именно _так_, то:


# include <stdio.h>

void strget(char*, int);
void stradd(char*,char*);

int main()
{
char text1[100];
char text2[21];

printf("Erster Text? ");
strget(text1, 100);

printf("Zweiter Text? ");
strget(text2, 21);

stradd(text1,text2);

printf("Result: %s\n",text1);

return 0;
}

void strget(char* targ, int len)
{
while(((len--)!=0) && (scanf("%c",targ)) && (*(targ)!='\n')){ targ++; }
*(targ)='\0';
}

void stradd(char *z,char *q)
{
while(*z) z++;
while(*z++ = *q++)
;
}


...но это бред.

Старый 14.11.2003, 15:01
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 4  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
че-то вы темните, ребята :))

если надо контроллировать ввод побуквенно -
то вместо scanf("%c", &text1[i]);
проще поставить text1[i] = getch(); :)

а если не надо - то почему бы не считать сразу всю строку через gets() ?

зы: похоже на лабораторную работу по информатике для первого курса тех. вуза :)

Старый 14.11.2003, 15:13
mort вне форума Посмотреть профиль Отправить личное сообщение для mort Найти все сообщения от mort
  № 5  
mort

Регистрация: Jun 2002
Сообщений: 391
gets, getch можно, но они только под DOS
да и не понятно: может быть задача была поставлена scanf юзать, а может быть алгоритм прикинуть.
х3.


пущай думает...


p.s.
Лабораторная поди и есть.
Кто бы стал такое ТАК делать?

Старый 14.11.2003, 15:16
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 6  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
По умолчанию Re: кто знает С помогите плиз

Цитата:
Оригинал написал(а) Artem Melnikov
Подскажите плиз как можно поизящнее написать примерно такой код?
Что должен делать этот код?
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 14.11.2003, 15:20
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 7  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) mort
gets, getch можно, но они только под DOS
Тебя глючит.

Код:
man gets
man getch
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 14.11.2003, 15:30
mort вне форума Посмотреть профиль Отправить личное сообщение для mort Найти все сообщения от mort
  № 8  
mort

Регистрация: Jun 2002
Сообщений: 391

хорошо, перефразирую:

вместо "только под дос"
будет
"только не под windows"


....
хотя gets, по-моему, можно....
ай, да ну ее в болото....


Старый 14.11.2003, 16:03
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 9  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) mort
вместо "только под дос"
будет
"только не под windows"
Тебя глючит все больше. Во-первых, gets живет в stdio.h, а соответственно есть практически везде. Что же до getch, то в нативных виндовых системах он обычно живет в conio.h. Пример кода см. на MSDN.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 14.11.2003, 16:17
mort вне форума Посмотреть профиль Отправить личное сообщение для mort Найти все сообщения от mort
  № 10  
mort

Регистрация: Jun 2002
Сообщений: 391
Да нет, глючит меня все по-прежнему
Это была реакция на man.

Таки пришлось в доки лезть...
А чего вы хотели?
Пятница, конец рабочего дня....

Создать новую тему   Часовой пояс GMT +4, время: 23:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.