횽님들 c언어 프로그램 짠거에서 좀더 완성도좀 높여줘
부탁할께
#include<stdio.h>
void main()
{
char str[51];
int word[50]={0,};
int i,j=0;
printf(\"50자 이내로 영어문장을 입력하시오 :\\n\");
gets(str);
for(i=0;i<51;i++)
{
if(str[i]==\'\\0\')
break;
if(str[i]==\' \')
{
if(word[j]!=0)j++;
}
else if(str[i]!=\'.\' && str[i]!=\',\' && str[i]!=\'?\' && str[i]!=\'!\')
word[j]++;
}
printf(\"입력한 문장에서 단어의 개수는 %d개 이며 단어의 글자수는\",j+1);
for(i=0;i<=j;i++)
{
printf(\"%d,\",word[i]);
}
printf(\"이다.\\n\");
}
여기서 프로그램을 돌렸을때
특수문자 문장안에 ! , . ? 를 입력했을때 그러니까 예를 들여서
i am a boy? . 이렇게 입력했을때
\"단어의 개수는 5개 이며 단어의 글자수는 1,2,1,3,0,이다.\"
이렇게 나오는데 결과에서 단어의 개수를 출력할때 특수문자를 포함하지 않고
\"단어의 개수는 4개 이며 단어의 글자수는 1,2,1,3 이다.\"
이렇게만 출력되게 하려면 어떤걸 고쳐야 되는거야?
(입력문장은 위에와 동일하게 뒤에? . 등 특수문자를 입력할때 말야)
5. 울면서 엄마한테 해달라고 한다 ㅠ,ㅠ 엄마~ 이거 안 돼
망했다. 들여쓰기 되어있는 코드만 봤더니 들여쓰기 안되어 있는 코드를 보면 하나도 모르겠다
망했다. 키워드에 하이라이팅이 없어서 하나도 모르겠다
else if문을 어디 위로 올려야되?
근데 이거 글쓴이는 돌려보고 말하는건가
계속 돌려보면서 질문하고 있어
난왜 나래 원하는 답이 나오냐
i am a boy? . 이렇게 입력하면 \'단어의 개수는 4개이며 단어의 글자수는 1,2,1,3개 입니다.\' 이렇게 나온다구? 난 안나오는데
난 그렇게 나오는데 VC2010
성공했니?
.... 실패 나는 계속 문장부호 넣으면 그것도 단어 갯수로 세는데.... 왜그런지 아는사람 없어? 좀 초보좀 도와줘..
else if(str[i]!=\'.\' && str[i]!=\',\' && str[i]!=\'?\' && str[i]!=\'!\') 만약 난 죽었네 횽 말대로 제대로 안나온다면, 여기서 제대로 못걸러지고 있는거 같은데, 제대로 비교 하고 있는게 맞는지 확인해봐.
널일때 브레이크 하기전에 word i번째값이 0이면 i--하고 브레이크해야지 값이없는데 그걸왜 포함해 i번째값이 마지막일때 부호만있으면 그건빼야지.
변태 코드 한번 볼래요?
http://codepad.org/6zIymd8y