코드는 문장을 입력받으면 그 안에 단어가 몇개인지 세는 거에요 대신 띄어쓰기 2개는 연속으로 안나와요 첫번째 for문에서 받은 문장을 다 읽으려고했는데 한 단어만 읽고 프로그램이 종료되는거 같더라고요... 어떻게해야 문장을 문자열 끝까지 다읽을수있을까요... - dc official App
이거 백준문제아닌가
맞아요!! 1152번 문제에요 - dc App
scanf는 기본적으로 공백을 받으면 입력을 끝냄. 다른걸로 입력 받거나 scanf_s("%[^\n]",s, ....) 이렇게 해봐
아...그럼 띄어쓰기랑 NULL문자랑 같은취급인건가요? - dc App
띄어쓰기는 문장이 끝났다고 인식해요
ㅇㅇ
넵 감사합니다 그래서 s[i] != NULL이라고쓰면 딱 첫번째 단어까지만 읽는거였네요 - dc App
와 형님 %[^\n]이걸로 하니깐 되는데 혹시 저게 뭔지 설명 가능하신가요? - dc App
\n 즉 줄바꿈을 제외(^)한 모든걸 입력받겠다는 의미임. 엔터눌렀을 때 엔터빼고 다 입력받음. 특수문자, 숫자, 공백 등
정규표현식이랑 약간 관련있는건데 1152문제 풀이 찾아보면 잘 정리된거 몇 개 있을듯
와 설명 너무 잘해주셔서 바로 이해했네요 감사합니다 + - dc App
문자열 끝 부분 공부해보시고, 띄어쓰기 빼고 문장 속 단어를 알아보시는거면 for (char a : (문자열) ) { if ( a != ' ' ) { 띄어쓰기가 아니니 단어 개수 ++ } }
적어주신 for문 조건이 뭘 뜻하는건가요...? 어렵네요 ㅠㅠ - dc App
저 for문의 형태는 문자열 속 의 element들을 for문이 문자열의 길이만큼 반복할때마다 새로 만들어준 a 에게 n번째 문자열의 문자를 대입시켜주는 겁니다!
이거 C언어에서 되나?
안되네요... - dc App