プログラムの改良
文章を単語毎に分割するプログラムを作っています。
下記のプログラムだと I□am□a□boy. の場合、Iとamとaとboyと.に分割され、ここまではいいのですが。
さらにI□am□□a□□□boy□.とスペースが余計に入ってしまってる文章の場合に、Iとamと□aと□□boyと□.
と表示させたいのですがどう改良したらいいのか分かりません。
下記のプログラムだとI□am□□a□□□boy□.はIとamとaとboyと.になってしまいます。
どなたかプログラムの追加を教えていただけないでしょうか。□はスペース一個を表しております。
#include <stdio.h>
int main()
{
int i,key,len,num ;
char str[256],*ptr[128] ;
num = 0 ;
len = 0 ;
ptr[0] = str ;
do {
key = getchar();
str[len] = (char)key ;
if ( key == ' ' || key == '.' || key == ',' || key == '!' || key == '?' || key == '"' || key == 0x0a || key == 0x0d ){
str[len] = '\0' ;
if ( str+len-ptr[num] ){
num ++ ;
}
ptr[num] = str+len+1 ;
if( key=='.' || key== '!' || key=='?' || key=='"'){
str[++len]=(char)key;
str[++len]='\0';
ptr[++num]=&str[len+1];
}
}
len ++ ;
} while ( key != 0x0a && key != 0x0d && len < 255 );
str[255] = '\0' ;
for (i=0 ;i<num ;i++){
printf("%d. %s\n",i+1,ptr[i]);
}
return i ;
}
お礼
ご回答ありがとうございます。YouTubeではさまざまな語彙で検索いたしましたが、当該曲はみつかりませんでした。 またそれ以外の趣味のサイトで、YouTubeへの投稿記録を見かけましたが、リンク先を開いて見ますと、すでに著作権等の問題で削除されたり、投稿者自らが消去済みであったりもしました。 本質問については、JRAのクラブCPATにも問い合わせしましたが、古いもので著作権等の問題もあり音源の再発売は現在予定なしとの回答でした。 これからも探して参ります。