![]() |
|
||||||||||
|
|||||
|
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++)
;
}
|
|
|||||
|
Регистрация: Jun 2002
Сообщений: 391
|
Странно выглядят подобные операции с функциями форматированного ввода.
Данный код корректно работать не будет. |
|
|||||
|
Регистрация: 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++) ; } ...но это бред. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
че-то вы темните, ребята :))
если надо контроллировать ввод побуквенно - то вместо scanf("%c", &text1[i]); проще поставить text1[i] = getch(); :) а если не надо - то почему бы не считать сразу всю строку через gets() ? зы: похоже на лабораторную работу по информатике для первого курса тех. вуза :) |
|
|||||
|
Регистрация: Jun 2002
Сообщений: 391
|
gets, getch можно, но они только под DOS
да и не понятно: может быть задача была поставлена scanf юзать, а может быть алгоритм прикинуть. х3. пущай думает... p.s. Лабораторная поди и есть. Кто бы стал такое ТАК делать? ![]() |
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
![]() ![]()
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
Регистрация: Jun 2002
Сообщений: 391
|
![]() хорошо, перефразирую: вместо "только под дос" будет "только не под windows" .... хотя gets, по-моему, можно.... ай, да ну ее в болото.... ![]() |
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
Во-первых, 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++ |
|
|||||
|
Регистрация: Jun 2002
Сообщений: 391
|
Да нет, глючит меня все по-прежнему
![]() Это была реакция на man. Таки пришлось в доки лезть... А чего вы хотели? Пятница, конец рабочего дня.... ![]() |
![]() |
Часовой пояс GMT +4, время: 23:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|