![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Заблокирован
Регистрация: 05.05.2010
Сообщений: 40
|
![]()
#include <stdio.h>
#include <string.h> #include <ctype.h> void main(){ /*объявление переменных*/ char temp[]="ababab ababbaa babaaa abbaaaa"; char st[]="";//обработанная строка char mas[255]; int i;//счетчик int t;//счетчик массива /*удаляем лишние пробелы*/ for(i=1;i<=strlen(temp);i++){ if ((temp[i]==' ')&&(temp[i-1]==' ')) i++; else {st[0]+=temp[i];} } printf("%s\n",st); /*заносим слова в массив*/ t=0; for(i=0;i<=strlen(st);i++){ if ((st[i]==' ')||(i==strlen(st)))t++; mas[t]=mas[t]+st[i]; } /*количество слов*/ printf("Kol-vo slov = %d",t); getch(); } алгоритм нормальный, но почему то не удаляются лишние пробелы..помогите, пожалуйста.. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 12.02.2007
Сообщений: 360
|
![]()
if ((temp[i]==' ')&&(temp[i-1]==' ')) i++;
Вот тут ошибка. Он два раза при таком раскладе будет i плюсовать. Первый раз тут и второй на очередной итерации... Там, наверное, continue нужно ставить Или - if ((temp[i]==' ')&&(temp[i-1]==' ')) i++; заменить на if ((temp[i]==' ')&&(temp[i+1]==' ')) i++; |
![]() |
![]() |
![]() |
#3 | |
Заблокирован
Регистрация: 05.05.2010
Сообщений: 40
|
![]()
Неа, выводит тоже самое что и было=(
Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.02.2009
Сообщений: 555
|
![]() Код:
|
![]() |
![]() |
![]() |
#5 |
Заблокирован
Регистрация: 05.05.2010
Сообщений: 40
|
![]()
Теперь CodeGear Rad 2010 Studio другую ошибку сыплет..=(
Вообще по заданию задумка такая - у нас есть строка представленная ввиде массива символов, нужно найти в этой строке слово с максимальным содержанием символов a и b. Мой алгорит таков: 1)Удаляем в строке лишние пробелым(потому что препод любит пошутить с этими вещами); 2)Заносим каждое слово в массив строк; 3)Разбираем каждый элемент массива как строку и подсчитываем буквы a и b и далее по заданию выводим это слово; Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 16.02.2009
Сообщений: 555
|
![]()
Понятно что сыплет массив st у тебя какого размера. я ж пример привел!
|
![]() |
![]() |
![]() |
#7 |
Я
Форумчанин
Регистрация: 24.04.2010
Сообщений: 693
|
![]() Код:
![]()
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©. |
![]() |
![]() |
![]() |
#8 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
![]()
Для удаления всех пробеллов из строк можно воспользоваться следующим:
Код:
|
![]() |
![]() |
![]() |
#9 |
Заблокирован
Регистрация: 05.05.2010
Сообщений: 40
|
![]()
oleg kutkov, это первая лаба - в ней разрешено только пользоваться строковыми массивами и все=) ознакомительная вроде как...шаг в сторону - использование других функций==несдаче лабы...
|
![]() |
![]() |
![]() |
#10 |
Заблокирован
Регистрация: 05.05.2010
Сообщений: 40
|
![]()
удаляет первое слово если введено допустим так: "u popa byla sobaka" такое происходит именно с однобуквенными первыми словами...
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
удалять лишние пробелы из строки | eduard17 | Помощь студентам | 4 | 19.02.2010 20:42 |
Убрать лишние пробелы из строки | SoftKoc | Общие вопросы Delphi | 3 | 03.12.2009 23:54 |
Удалить лишние пробелы [C++] | StudeHt | Помощь студентам | 2 | 20.05.2009 23:12 |
Удалить лишние пробелы | Иван 883 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 06.04.2009 22:45 |