Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите найти ошибку

53K
26 апреля 2012 года
во_Анатоль
12 / / 24.05.2010
Добрый день. Имеется строка, содержащая как цифры так и буквы. Задача: выполнить перемещение всех цифровых символов в начало строки.
Пробовал так : (но работает крайне нестабильно , появляются рандомные символы в итоге (использовал Borland Builder 5))


Код:
#include <stdio.h>
#include <conio.h>

#include <string.h>


void  main()
{ char cif[] = {'0','1','2','3','4','5','6','7','8','9'  };
   int i,j=0,k=0;
char len;
   char str[20],str_c[20],str_l[20];
printf("Vvedite stroku\n");
gets(str);


len=strlen(str);
for(i=0;i<len;i++)
 {if (strchr(cif,str[i])!=NULL)
    {str_c[j]=str[i];

     j++;


     }
     else
      { str_l[k]=str[i]; k++;
     }

 }

 printf("%s",strcat(str_c,str_l))  ;



getch();


}
И это моя попытка рабочего кода.
Для этого обратился за помощью.
При вводе 45tr5 выводит нужный результат 455tr
а вот при таком варианте qwe123qwe результат след: 123qweqwe@ В данном случае появляется лишний символ '@' .
443
26 апреля 2012 года
REmindER
292 / / 23.03.2003
Цитата: kot_
Я даю возможность отредактировать сообщение и исправить в нем следующее:
1. Выполнить форматирование кода;
2. Привести свой рабочий код, и указать ошибки которые ставят в тупик. Но при этом разобравшись с ошибками, которые вполне можно исправить самостоятельно. Например что и в какой последовательности передавать в функцию strchr можно понять ознакомившись с ее описанием. Если данное описание чересчур лаконично - гугль в помощь
думаю времени до 18-00 по Москве вполне достаточно. Если же исправления не будут внесены - я посчитаю автора обыкновеннім халявщиком-студентом и тему удалю - как удаляю все подобные темы



Код приведен, проблема указана, а strchr использутеся правильно :)

Код:
void    main()
    {
    char    cif[] = "0123456789",

            str[20],

            str_c[20] = {0},
            str_l[20] = {0};

    printf("Vvedite stroku\n");
    gets(str);

    for(int i = 0, j = 0, k = 0; i < strlen(str); i++)
        strchr(cif, str[i]) != NULL ? str_c[j ++ ] = str[i] : str_l[k ++] = str[i];

    printf("%s", strcat(str_c, str_l));

    getch();
    }
1
26 апреля 2012 года
kot_
7.3K / / 20.01.2000
Я даю возможность отредактировать сообщение и исправить в нем следующее:
1. Выполнить форматирование кода;
2. Привести свой рабочий код, и указать ошибки которые ставят в тупик. Но при этом разобравшись с ошибками, которые вполне можно исправить самостоятельно. Например что и в какой последовательности передавать в функцию strchr можно понять ознакомившись с ее описанием. Если данное описание чересчур лаконично - гугль в помощь
думаю времени до 18-00 по Москве вполне достаточно. Если же исправления не будут внесены - я посчитаю автора обыкновеннім халявщиком-студентом и тему удалю - как удаляю все подобные темы
53K
26 апреля 2012 года
во_Анатоль
12 / / 24.05.2010
спасибо!
82K
26 апреля 2012 года
AKabanchuk
1 / / 26.04.2012
Если же исправления не будут внесены - я посчитаю автора обыкновеннім халявщиком-студентом и тему удалю - как удаляю все подобные темы
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог