第2学期第2週タスク3の統計文字列の単語の個数
2020 ワード
ソース:
経験の蓄積:
1.1行の文字列を出力する場合はgets(...)を使用します.入力、cinを使用すると、スペースに遭遇すると終了します.
上司の感想:
前学期は似たようなプログラムをしたことがありますが、各単語の間にスペースが1つしかありません.これは簡単ですが、2つの単語の間にいくつかのスペースがある場合は、先生が言ったように、ブール型変数を定義することができます.現在の文字がスペースの場合は、単語ではありません.現在の文字がスペースでない場合は、前の文字がスペースなので、単語の個数を計算し始めましたが、句読点語の単語の間にスペースがある場合は、単語として計算されるので、私はまた少し変更しました...
/*( )
*
*Copyright (c) 2011,
*All rights reserved.
* :
* :2011 114-3
* :2011 3 3
* :vc.3
*
* :
* : ( ) ,
* ( ,.;?!5 ) 。 :
*how old are you? I am 20. :there are 7 words in the line.
* :
*
*/
#include
using namespace std;
int main()
{
char str[81];// 80 , 81
int i = 0, num = 0;
bool isword = false;
gets(str);// cin, cin , ,
while(str[i]!='\0')//'\0' , str[i] = '\0' ,
{
if(str[i] == ' ')// ,
{
isword = false;
}
else if(isword == false)// , ,
{
isword = true;
++num;//
}
++i;
}
cout << "There are " << num << " words in the line" << endl;
return 0;
}
実験結果:経験の蓄積:
1.1行の文字列を出力する場合はgets(...)を使用します.入力、cinを使用すると、スペースに遭遇すると終了します.
上司の感想:
前学期は似たようなプログラムをしたことがありますが、各単語の間にスペースが1つしかありません.これは簡単ですが、2つの単語の間にいくつかのスペースがある場合は、先生が言ったように、ブール型変数を定義することができます.現在の文字がスペースの場合は、単語ではありません.現在の文字がスペースでない場合は、前の文字がスペースなので、単語の個数を計算し始めましたが、句読点語の単語の間にスペースがある場合は、単語として計算されるので、私はまた少し変更しました...
#include
using namespace std;
int main()
{
char str[81];// 80 , 81
int i = 0, num = 0;
bool isword = false;
gets(str);// cin, cin , ,
while(str[i]!='\0')//'\0' , str[i] = '\0' ,
{
if(str[i] == ' ' || str[i] == '?' || str[i] == '.' || str[i] == ',' || str[i] == ';' || str[i] == '!')// ,
{
isword = false;
}
else if(isword == false)// , ,
{
isword = true;
++num;//
}
++i;
}
cout << "There are " << num << " words in the line" << endl;
return 0;
}