n * 10 크기 문자열 배열 만들고 입력받은후에 그 문자열에 숫자 있는지 비교하려고 s[i] < '10' || s[i] > '-1' 이런식으로 했을때 abc123, def456 이거 두 개 입력 받으면
a부터 3까지, d부터 6까지 다 검사하는거임?? 코드가 이거임
#include <stdio.h>
void non_del_digit(char s[], int n)
{
int i = 0, idx = 0;
for (i = 0; i < n; i++)
{
if (s[i] >= '0' && s[i] <= '9')
s[idx++][0] = s[i];
}
s[idx++][0] = '\0';
}
int main()
{
char str[20];
int n, i;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%s", str[i]);
}
non_del_digit(str, n);
for (i = 0; i < n; i++)
{
printf("%s\n", str[i]);
}
return 0;
}
....?
에초에 s[i] > '-1' 여기서 문법 오류 나지 않냐?
오류가 안 떠서... 처음에는 >= 0 <= 9 이렇게 했는데 오류 떠서..
ch를 어떻게 '10'을 비교하노?
오류가 안 떠서 되는줄.... 처음에 >= 0 <= 9 했다 오류 떠서 바꾼거임.....
근데 애초에 0~9범위 내로 할거면 &&로 해야지 왜 ||로 함?
아..일단 그렇게 바꿔서 실행해봤는데 AB7CD58, 14S52QS, ABCED23, AAAAA11, AAAAA22 이렇게 입력을 햇는데 출력이 AB7CD58은 아예 안 나오고 나머지는 그냥 그대로 나왔는데 if문이 잘 못 된거임??
"10" 은 '1' 뒤에 '0' 아니냐 문자 배열 두자리 차지할텐데?
다시 >= 0 <= 9로 바꿈
s[i] =< '9' && s[i] >= '0' 이렇게 해
근데 그렇게 바꿨는데 포인터랑 정수랑 비교한다고 오류가 뜸...
s[idx++][0] = s[i]; 요기 주석하고 돌려도 그럼?
s[idx++][0] = '\0'; 요것도 같이 주석