Помогите найти ошибку
Пробовал так : (но работает крайне нестабильно , появляются рандомные символы в итоге (использовал 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();
}
#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@ В данном случае появляется лишний символ '@' .
Цитата: kot_
Я даю возможность отредактировать сообщение и исправить в нем следующее:
1. Выполнить форматирование кода;
2. Привести свой рабочий код, и указать ошибки которые ставят в тупик. Но при этом разобравшись с ошибками, которые вполне можно исправить самостоятельно. Например что и в какой последовательности передавать в функцию strchr можно понять ознакомившись с ее описанием. Если данное описание чересчур лаконично - гугль в помощь
думаю времени до 18-00 по Москве вполне достаточно. Если же исправления не будут внесены - я посчитаю автора обыкновеннім халявщиком-студентом и тему удалю - как удаляю все подобные темы
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();
}
{
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. Выполнить форматирование кода;
2. Привести свой рабочий код, и указать ошибки которые ставят в тупик. Но при этом разобравшись с ошибками, которые вполне можно исправить самостоятельно. Например что и в какой последовательности передавать в функцию strchr можно понять ознакомившись с ее описанием. Если данное описание чересчур лаконично - гугль в помощь
думаю времени до 18-00 по Москве вполне достаточно. Если же исправления не будут внесены - я посчитаю автора обыкновеннім халявщиком-студентом и тему удалю - как удаляю все подобные темы
спасибо!
Если же исправления не будут внесены - я посчитаю автора обыкновеннім халявщиком-студентом и тему удалю - как удаляю все подобные темы