![]() |
кто знает С помогите плиз
Подскажите плиз как можно поизящнее написать примерно такой код?
Код:
# include <stdio.h> |
Странно выглядят подобные операции с функциями форматированного ввода.
Данный код корректно работать не будет. |
Хотя, если внимания обращать не будут и задача была поставлена сделать именно _так_, то:
# 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++) ; } ...но это бред. |
че-то вы темните, ребята :))
если надо контроллировать ввод побуквенно - то вместо scanf("%c", &text1[i]); проще поставить text1[i] = getch(); :) а если не надо - то почему бы не считать сразу всю строку через gets() ? зы: похоже на лабораторную работу по информатике для первого курса тех. вуза :) |
gets, getch можно, но они только под DOS
да и не понятно: может быть задача была поставлена scanf юзать, а может быть алгоритм прикинуть. х3. пущай думает... :rolleyes: p.s. Лабораторная поди и есть. Кто бы стал такое ТАК делать? :) |
Re: кто знает С помогите плиз
Цитата:
|
Цитата:
Код:
man gets |
:)
хорошо, перефразирую: вместо "только под дос" будет "только не под windows" .... хотя gets, по-моему, можно.... ай, да ну ее в болото.... :rolleyes: |
Цитата:
|
Да нет, глючит меня все по-прежнему :)
Это была реакция на man. Таки пришлось в доки лезть... А чего вы хотели? Пятница, конец рабочего дня.... :) |
Пасиб, но теперь вы меня ещё больше запутали =)
Нужно соединить 2 string в один. Считывать в принципе всё рано как: хоть gets(); хоть scanf(); Единственное условие это использованние pointer_ов. С gets(); я уже пробовал,тоже работает. Там джаже "\0 " не пришлось вставлять. Цитата:
P.S. Nox Noctis ну вот ты и модератор =) |
если честно, не совсем понял что надо :)
и код твой не должен работать... по идее.. если объединение строк, то вот: ------ #include <iostream.h> #include <string.h> void main() { char *s1,*s2; cout<<"Pervaia stroka : "; cin>>s1; cout<<"Vtoraia stroka : "; cin>>s2; strcat(s1,s2); cout<<"Ob'edinenie : "<<s1; } ------ :rolleyes: |
Код работает =) как не странно.
#include <string.h> я ещё не знаю, поэтому не использую. |
так теперь знаешь ;)
а ты через адреса хочешь?.. надо подумать.. |
Рановато, наверное, еще string, если не проходили... х3.
ИМХО, пока все, что надо: # include <stdio.h> void stradd(char*,char*); main() { char text1[100]; char text2[21]; printf("1st Text? "); gets(text1); printf("2nd Text? "); gets(text2); stradd(text1,text2); printf("Result: %s\n",text1); return 0; } void stradd(char *z,char *q) { while(*z) z++; while(*z++ = *q++); } |
Красатааа.... пасиб. :)
|
| Часовой пояс GMT +4, время: 01:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.