미치겠습니다. (배열관련)
겨레
질문 제목 : 배열관련 문제에서왜 이상한 결과가 나는지 모르겠습니다. 질문 내용에 기제하겠습니다.
질문 내용 :#include stdio.h
#include string.h
int main(void)
{
char eng[10] = {0};
int i = 0;
printf(이 프로그램은 문자열을 입력받아(영어) 대소문자를 서로 변경해 주는 프로그램입니다. \n);
printf(문자열을 입력해주세요. \n);
fflush(stdin);
scanf(%s,eng); //eng라는 char형
fflush(stdin);
/* 처음에 문자 확인을 위해 처음 for를 이용해 모든 문자열을 돌리고, 돌렸을때 if를 이용해 수가
대문자인지 소문자인지 확인한다음, 대소문자를 바꿔준다 */
for(i = 0; i = 40; i++){
if(eng[i] = 65 && eng[i] =90 ){
printf(%c,eng[i]+32);
}
else if(eng[i] = 97 && eng[i] = 122){
printf(%c,eng[i]-32);
}
}
}
우선 소스를 보시면 제가 대문자나 소문자를 입력 받았을 때 이것을 소문자나 대문자로 바꿔서 출력하는 프로그램을 작성하였습니다. 그런데 이 소스를 작성하고나서 문자를 입력하고 엔터를 치면 문자를 입력한데까지 대/소문자로 바꿔서 출력하는 것은 확인이 됩니다. 그런데 문제는 그 다음부터입니다. 만일 asdffsaf로 바꿨을 때 asdffsaf로 바꿔지고 나서 뒤에 또 dvalm 과 같은 문자가 붙어서 출력되었습니다.
즉 asdffasfdvalm 과같은 결과가 출력되었습니다.
그래서 제가 생각했을 때 엔터도 scanf에서 입력되는것이라고 생각해서 fflush(stdin) 을 남용함에도 불구하고 값은 그대로였습니다.처음 c를 배우는 입장으로서 당황스럽네요
고수님들 부탁드립니다.
-
일본어못해요
너무 감사합니다. 좋은 참고가 되었어요 ~~~~~~~~~
-
서향
asdffsaf 는 선언된배열의 개수 10개를 못채우기때문에
나머지 공간에 쓰레기값이들어갑니다.
또한 for(i = 0; i = 40; i++) 이부분에서 배열의 개수를 초과하는 오류가 발생하게됩니다.
(배열의 공간은 10, i의 값은 40)
그러니 for문안의 i의 범위를 10으로 해주시고,
char eng[10] = {0};
이부분을 char eng[10]= {0,};
이렇게 해주시면 모든 배열을 0으로 초기화해주게됩니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |
2675356 | 2진수를 10진수로 바꾸려고 하는데 막히네요.. | 풀잎 | 2024-11-17 |
2675297 | Prity 비트 발생기 | 한란 | 2024-11-16 |
2675249 | C책 좀 추천해 주세요 (2) | 딸기우유 | 2024-11-16 |