수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

포인터배열 문장 이어쓰기 프로그램 입니다.(해결)

달

2023.04.01

#includestdio.h
#includestring.h
void main()
{

char temp[80]={};
char a[4]=end;
while(1)
{
char str[80]={0};
printf(input the character line : );
scanf(%s,str);

*(temp-1)=(*str);

if(*str==(*a))
break;

strcat(temp,str);
strcat(temp, );
printf(%s\n,temp);

}

수정본
#includestdio.h
#includestring.h

void main()
{

char temp[80]={0};
while(1)
{
char str[80]={0};
printf(input the character line : );
gets(str);
if(strcmp(str,end)==0) break;

strcat(temp,str);
strcat(temp, );
printf(%s\n,temp);

}
}

}
문장이어쓰기 프로그램인데요 ...글을쓰면 그 대로 그 이전에 문장에 이어서 붙여쓰는 프로그램입니다. 그리고 끝낼때 end라는 단어를 만나면 while문을 빠져나오는 프로그램입니다. 목적은 strcat을 공부하다가 나온것이구요

프로그램은 실행이 되는데 실행에서 첫문자에 e로 시작되는 edfdsf 이런식으로 시작되면 오류 라고 뜨면서 프로그램을 나와버립니다.한마디로 e만 나오면 정신을 못차린다는 것이지요.. 고수님들 갈켜주세요.

실행은 되지만 워닝이 2군데나 뜨는데 이것도 잡아주심 겸사겸사 감사하겠습니다.^^;

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 무크

    와우 또 scanf와 gets의 차이를 얻을수 있는 정보를 얻었군요..큐수다님에게 감사합니다.

  • 돌심보

    scanf는 공백,엔터 등 화이트 스페이스를 입력할 수 없고, gets 함수는 공백을 포함하여 입력할 수 있습니다.
    따라서, scanf는 띄어쓰기가 있는 문장을 입력할 수 없고, gets는 문장을 입력할 수 있습니다.

    if(*str==(*a))와 if(str[0]==a[0])는 똑같은 표현이지만,이 말은 str의 첫번째 문자와 a의 첫번째 문자를 비교할 뿐입니다. str과 \end\를 비교하는 게 아니죠. 수정본에서 문자열을 비교해서 종료하는 것으로

  • 다크

    님말대로 gets함수쓰니까 문제 없이 돌아가네요.. 근데 무슨차이인가요?

    if(*str==(*a)), 이거나 if(str[0]==a[0])익 형식적으로 배열과 포인터로 봤을 때 똑같은거아닌가요?
    그리고 scanf와 gets함수차이는 뭔가요?

    또 님때문에 하나해결하네요.. ㅋ

  • 흰우유

    char temp[80]={}; - 이거 오류나지 않나요? 오류가 안 난다면 괜찮지만, 난다면 0으로 초기화하세요.
    그리고 while문 안에 char str[80]={0}는 밖으로 빼세요. 그리고 문장 이어쓰기이면, scanf 말고 gets나 fgets를 쓰세요. scanf로는 문장을 입력할 수 없습니다.

    *(temp-1)=(*str); 이것을 배열로 표현하면 temp[-1]=str[0] 입니다.
    if(*str==(*a)). 이것도 if(str[0]

번호 제 목 글쓴이 날짜
2700562 함수포인터에서요 (7) 소심한여자 2025-07-06
2700530 전처리문 질문입니다. (1) 아놀드 2025-07-05
2700510 c언어를 어케하면 잘할수 있을까요.. 연연두 2025-07-05
2700484 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) 날위해 2025-07-05
2700426 인터넷 창 띄우는 질문이요 (1) 정훈 2025-07-04
2700400 원넓이를 계산이요 ㅜㅜ 천칭자리 2025-07-04
2700368 if에 관해서 질문이요... Orange 2025-07-04
2700339 이거 결과값이 왜이런건지.. (4) 그댸와나 2025-07-04
2700313 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) 크나 2025-07-03
2700287 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) 아련나래 2025-07-03
2700264 문자와 숫자 동시에 입력??? 글고운 2025-07-03
2700236 txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) 미국녀 2025-07-03
2700211 전위 연산자 (2) 어른처럼 2025-07-02
2700183 C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; 피스케스 2025-07-02
2700150 꼭좀 도와주세요ㅠㅠㅠ 호습다 2025-07-02
2700095 연산문제...질문... 오빤테앵겨 2025-07-01
2700070 while문 , 3의배수 출력하는 프로그램좀 짜주세욤. 횃불 2025-07-01
2700041 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? 헛장사 2025-07-01
2700012 배열// (1) 전갈자리 2025-07-01
2699895 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) 선아 2025-06-30
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com