Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа со строками.. по идее элементарная задача, помогите( 
:(
    Опции темы
bubnoplyass
  Дата 22.10.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 11.10.2007

Репутация: нет
Всего: нет



Народ плиз помогите.. а то я себя уже замучал ... Задача не сложная  а решить не могу(
вот часть задачи: Нужно из строки удалить все нули например если мы ввели строку 1020401002 то должно получиться 12412 .  

Вот мой вариант решения но он не верный я даже не понимаю почему если не щитать что там цикл лишний раз прокручивается(зависит от количества нулей) то должно работать но не работает(
Код


#include<stdio.h>
#include<conio.h>
#include<string.h>



 main()
 {
  char a[100];
  char b[100];
  int n=0,k,i;
  clrscr();
  printf("Vvedite stroku\n");
  gets(a);
  k=strlen(a);

   {
  for (i=0;i<k;i++)

  {
   if (a[i]!='0')
   

   b[i]=a[i];
   

  
    }
   }


 printf("%s",b);
 getch ();

 return 0;

}





зарание  СПАСИБО!!!

PM MAIL ICQ   Вверх
Lazin
Дата 22.10.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



У тебя символы в строку b, копировались в те-же позиции что и в исходной строке, помимо, в конец строки b не добавлялся 0
Код

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    char a[100];
    char b[100];
    int n=0,k,i;
    //clrscr();
    printf("Vvedite stroku\n");
    gets(a);
    k=strlen(a);
    int pos = 0;
    {
        for (i=0;i<k;i++)
        {
            if (a[i]!='0')
            {
                b[pos++]=a[i];
            }

        }
    }
    b[pos] = '\0';
    printf("%s",b);
    getch ();
    return 0;
}

PM MAIL Skype GTalk   Вверх
FREEDEV
Дата 22.10.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 6.3.2007
Где: Украина->Одесс а

Репутация: нет
Всего: 3



буквально недавно был похожий вопрос:
http://forum.vingrad.ru/topic-177469.html

вот код для твоего варианта

Код

#include <iostream>
#include <algorithm>
#include <string>
#include <conio.h>
            
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    string s1 = "1020401002"; 
    while(s1.erase(find(s1.begin(),s1.end(),'0')) != s1.end());
    cout << s1 << endl;
    getch();
    
    return 0;
}

--------------------
Microsoft Windows Visla ©
PM MAIL   Вверх
bubnoplyass
  Дата 22.10.2007, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 11.10.2007

Репутация: нет
Всего: нет



Большое спасибо) всё работает ) smile 
PM MAIL ICQ   Вверх
Vyacheslav
Дата 23.10.2007, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Цитата(FREEDEV @  22.10.2007,  16:45 Найти цитируемый пост)
буквально недавно был похожий вопрос:
http://forum.vingrad.ru/topic-177469.html

вот код для твоего варианта

Я конечно извиняюсь, но раз  в задаче разрешено использовать stl,то почему бы не использовать его в полной мере, не заморачиваясь с циклом
Код

#include <iostream>
#include <algorithm>
#include <string>
#include <conio.h>
            
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    string s1 = "1020401002"; 
    s1.erase(remove(s1.begin(),s1.end(),'0'), s1.end());
    cout << s1 << endl;
    getch();
    
    return 0;
}




--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0642 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.