入力を前から見て行って、/* が現れそれ以後に / が現れているとき、その最初の / に始まりそれ以後で最初に現れた */ で終わる部分(注釈)の個数を数えたいです。
入力は、複数行の場合もあります。 (キーボードから入力するときは、最後に C-d を入力する。)
例
入力例1
This is /* a comment、
which /* continues to
here */ ///**.
出力例1
1
入力例2
///////
出力例2
2
#現在の状況
入力を1行ずつmojiという配列に格納し、それをsentenceという配列に連結して、sentenceを前から順に調べていこうと思いました。(下記コード参照)
しかし、入力に改行が含まれると何も出力されません。
上の例でいうと、入力例2はsentenceは///////と表示されますが、入力例1だと何も出力されません。
#相談事項
・sentenceを出力するにはどうしたらいいのでしょうか。
・この方法以外でも、もっといいやり方があれば、どなたかご教授いただければ幸いです。
c言語
1#include<stdio.h> 2#include<string.h> 3 4int main(void){ 5 char moji[100]; 6 char sentence[]=" "; 7 int flag=1; 8 9 printf("文字列を入力してください\n"); 10 11 while(scanf("%s",moji)==1){ 12 strcat(sentence,moji); 13 } 14 printf("%s",sentence); 15 return 0; 16}
回答2件
あなたの回答
tips
プレビュー