Здравствуйте, гость ( Вход | Регистрация )
| Гость_aligatr-kil_* |
Dec 25 2007, 21:32
Сообщение
#1
|
|
Guests |
Помогите пожалуйсто исправить программу : Удалите из слова все буквы, совпадающие с последней буквой.
Код #include <iostream.h>
#include <stdio.h> #include <conio.h> void main () { int i; int j; char str[100]; cin>>str[i]; char sym = str[strlen(str)-1];//запомнили последний for( int i = 0; i < strlen(str); i++) if( str[i] == sym )// находими нужный символ for( int j = i; j < strlen(str)-1; j++) str[i] = str[i+1];//сдвигаем хвост cout << str[i]; getch(); } |
|
|
|
![]() |
| Гость_Ireul_* |
Dec 27 2007, 02:21
Сообщение
#2
|
|
Guests |
Типичная ошибка для чайника - сдвигая массив ты "перепрыгиваешь" по i одну букву, так как она из i+1 перемещается в i, а в следующей итерации цикла ты уже увеличиваешь i, и когда у тебя встречается пара целевых букв для сдвига - одну ты пропустишь.
Как вариант - --i; каждый раз как выполняешь сдвиг. Маленькое дополнение - сдвигать гораздо удобнее при помощи вызова strcpy(str+i,str+i+1); ЗЫ ты вообще щачем удаляешь что-то из целевой строки? Ты же выводишь посимвольно, так и выводи символ если он не совпал и выводи если совпал, а строку вообще трогать незачем. |
|
|
|
aligatr-kil Помогите пожалуйсто исправить программу Dec 25 2007, 21:32
SiMM Цитата(aligatr-kil @ Dec 25 2007, 21... Dec 25 2007, 22:33
Shasta Dam Цитата(Ireul @ Dec 27 2007, 02:21) Типичн... Dec 27 2007, 20:08
Ireul Цитата(Shasta Dam @ Dec 27 2007, 20:08) п... Dec 28 2007, 04:21
SiMM Цитата(Ireul @ Dec 28 2007, 04:21) Даже с... Dec 28 2007, 08:52
Smacker Ну, я конечно не уверен, что авторская задумка был... Dec 29 2007, 11:49
aligatr-kil спасибо всем большое !!! Jan 7 2008, 01:24
Snowm@n Цитата(Smacker @ Dec 29 2007, 11:49) Ну, ... Jan 31 2008, 11:01
Amp Мои две копейки - в коде разбираться не хочу, но б... Dec 27 2007, 23:04![]() ![]() |
|
Текстовая версия | Сейчас: 27th November 2025 - 23:51 |