![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 25.04.2010
Сообщений: 2
|
![]()
Вводится с клавиатуры предложение, проверяется сложное или нет, простым является часть предложения без запятых. Нужно поменять местами соседние простые части предложения, если оно сложное, если нет просто вывести на экран соответствующее сообщение. Нельзя использовать стандартные функции, надо разработать свои...
Вот что у меня получилось, помогите исправить чтобы работало: #include <stdio.h> #include <string.h> #include <stdlib.h> #define sim 1 #define com 2 int Length(char *string) { int i=0, c=0; while(string[i]!=0) { i++; c++; } return c; } char *copy(char *from, char *to, int length) { int i; for(i=0; i<length; i++) { to[i]=from[i]; } } char *read() { char *output; char tStr[255]; int tlen=0; int f=0; while(f==0) { printf("Input your sentence with a point in the end\n"); gets(tStr); tlen=Length(tStr); if(tlen<=1 || tlen>255) { printf("Error!!! You have enterred incorrect sentense, please try again\n"); } else if(tStr[tlen-1]!='.') { printf("Error, no point in the end of sentence\n"); } else { f=1; } } output=(char*)malloc(sizeof(char)*( tlen+1)); copy(tStr, output, tlen); output[tlen]=0; return output; } char check(char *str) { int i=0; while(str[i]!='\0') { if(str[i]==',')return com; i++; } return sim; } char Add(char *to, char *from, int end_to, int obsh, int zapstr) { int l=0, m=0; for(l=end_to; l<obsh; l++) { for(m=zapstr; m<obsh; m++) { to[l]=from[m]; } } } char ch() { char a[255], b[255], temp[64]; int lena=0, lenb=0,lent=0, i, l=0, m=0, j=0, count=0, length=0; char *input; input=read(); if(check(input)==sim) { printf("Simple string\n"); } else { printf("complicated string\n"); } //output=read(); length=Length(input); for(i=0; i<length; i++) { while(input[i]!='\0') { if(input[i]==',') { count++; temp[j]=i; j++; } else if(input[i]=='.') { temp[j]=i; j++; } } } lent=Length(temp); for(j=0; j<lent; j+=2) { l=temp[j]; m=temp[j+1]; for(i=0; i<j; i++) { copy(input, a, l); lena=Length(a); a[lena+1]=0; } for(i=0; i<j+1; i++) { copy(input, b, m-l); lenb=Length(b); b[lenb+1]=0; } Add(b, a, lenb, lena, length); printf("b=%s", b); } } int main() { ch(); return 1; } Последний раз редактировалось viksen_; 25.04.2010 в 17:03. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу понять где ошибка при сортировке строки!? | Dema91 | Помощь студентам | 1 | 14.04.2010 20:11 |
IBExpert, не могу понять что делаю не так! в чём проблема.... | katia0017 | SQL, базы данных | 10 | 15.01.2010 18:33 |
С++ Строки, повтор слов. В чём ошибка? | Estale | Помощь студентам | 0 | 09.12.2009 21:53 |
Не могу понять где ошибка в коде | SeRhy | Общие вопросы C/C++ | 5 | 20.09.2009 13:10 |