프로그래밍 실력이 개허접이라서 나 혼자서 해볼려는데
몇시간째 끙끙되서 도움을 요청해볼려고..
문자열(string) 단원 연습문제인데,
gets() 함수를 사용해서 사용자가 입력한 스트링 중에 가장 긴 단어를 출력하는 프로그래밍을 짜는건데,
예를 들어보면,
hello, i'm a student
student
스페이스로 단어를 구분하고 가장 긴단어가 출력되는거임..
scanf 함수를 사용하면 어떻게 할것도 같은데 gets()함수만 쓰라니까 미치겠음.
내 생각은 for문 이용해서, str[i] == '\0' 이 되는 i를 찾고
for문 초기값과 i의 차이를 구해서 단어 길이를 구하고
또 i+1부터 for문을 돌려서 str[k] == '\0'이 되는 k를 찾고
k-(i+1)을 계산 해서, 전에 구했던 단어 길이와 비교해서
더 큰값을 max에 대입시키고
계속 쭉쭉해서 마지막 까지가서, max가 나왔던 구간의
초기값과 i 값이 나와서
for문을 돌려서 putchar함수 돌려서 출력 하면 될것 같았는데
너무 복잡하고 어떻게 해야될지 모르겠어...
어떻게 해야된다 정도만 가르쳐줘도 Vㅔ리 Vㅔ리 감사할듯! ㅠㅠ
몇시간째 끙끙되서 도움을 요청해볼려고..
문자열(string) 단원 연습문제인데,
gets() 함수를 사용해서 사용자가 입력한 스트링 중에 가장 긴 단어를 출력하는 프로그래밍을 짜는건데,
예를 들어보면,
hello, i'm a student
student
스페이스로 단어를 구분하고 가장 긴단어가 출력되는거임..
scanf 함수를 사용하면 어떻게 할것도 같은데 gets()함수만 쓰라니까 미치겠음.
내 생각은 for문 이용해서, str[i] == '\0' 이 되는 i를 찾고
for문 초기값과 i의 차이를 구해서 단어 길이를 구하고
또 i+1부터 for문을 돌려서 str[k] == '\0'이 되는 k를 찾고
k-(i+1)을 계산 해서, 전에 구했던 단어 길이와 비교해서
더 큰값을 max에 대입시키고
계속 쭉쭉해서 마지막 까지가서, max가 나왔던 구간의
초기값과 i 값이 나와서
for문을 돌려서 putchar함수 돌려서 출력 하면 될것 같았는데
너무 복잡하고 어떻게 해야될지 모르겠어...
어떻게 해야된다 정도만 가르쳐줘도 Vㅔ리 Vㅔ리 감사할듯! ㅠㅠ
대신 짜줄까? 그걸 분석해볼래?
ㄴ 그래주면 너무너무 감사 ㅠㅠ!
근데 몇개 입력받는지 정해진거야? 아니면 Ctrl+Z까지 입력?
입력 받은 문자에서 스페이스 만날때까지 길이 재고 그다음 스페이스 까지 길이 재서 더 긴거의 시작점 주소담아넣기 반복하다가 다 끝나면 주소+길이 만큼 출력 하면?
문장 길이는 안정해져있고 그냥 엔터치면 넘어가는거임.
잠깐! 미리 말을 안했는데 포인터는 쓰면 안된대!
헉 시발 엔터까지 입력을 어떻게 구현하지
음;; 넘어렵게 생각하는거같은데 ㅠ gets(str1);
이라고 쓰면 str1에 엔터를 할때까지의 문장들이 대입이 되잖아
내가 설명을 잘못했남;; 그냥 문장 입력하면 그중에서 제일 긴단어 출력. 이거말곤 더 없어 ㅠ
한문장 입력 하고 출력하면 프로그램 종료!
지금 짜는중
ㄴ 감사해요 형..ㅠㅠ... 그리고 처음 질문글 올리는거라 빼먹은게 많은데, 난 c언어 밖에 안배워서 따로 c언어라고 언급을 안했네... 가장 중요한건데 ㅠ c언어로 짜주시는거 맞나여?ㅠㅠ
니머리속에있는걸해보고틀리면서배우는거야
몇시간째 해메고 있는데 아예 감도 안잡혀서요... 주변에 물어볼 사람도 없고 해서 물어보게됬네요. 저도 시간이 걸려도 혼자하는게 낫다는것은 알고있지만 너무 답답해서 올려봤습니다 ㅠ