练习处理以null终止符结尾的字符数组

时间:2016-04-22 20:22:16

标签: c++

编写一个程序,要求用户输入任何句子,最多50个字符。然后程序将告诉句子中有多少单词以及句子中有多少个字符。不要计算空字符。然后程序将向后显示该句子。程序必须使用一个函数来确定句子中有多少单词,并通过返回值函数传回这些信息。

示例输出如下:

输入一些句子: 这很有趣!

你的句子有3个字。 你的句子有12个字符。

你的判决结果如下: !nuf si sihT

*****我完成了大部分工作只需要一些帮助来计算字符并使函数工作*****

#include <iostream>
#include <string>
using namespace std; 

int Words(char Line[]);
int main ()

{
string text;
cout << "Enter some Sentence: ";
getline(cin, text); 
text = string(text.rbegin(), text.rend());
cout << "Your sentence backwards is as follows: " << text << endl; 
return 0;


}

int Words (char Line []);
{

int CharCount = 0; 
const int Size = 50; 
char Sentence [Size];
int WordCount = 0; 
cout << "Enter Some Sentence: ";
cin.getline(Sentence, 50);
for (int i =0; Sentence[i]!='\0'; i++)
{
    if (Sentence[i] == ' ')
    {
        WordCount++;
    }
}cout << "The number of words = " << WordCount+1 <<endl; 
return 0;
}

1 个答案:

答案 0 :(得分:0)

您可以使用与流提取运算符结合的用户输入句子构造的istringstream来计算单词。

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int words(string sentence)
{
    istringstream in{sentence};
    string one;

    int count = 0;
    while(in >> one)
       ++count;

    return count;
}

int main()
{
    cout << words("just two") << '\n';
    cout << words("A whole bunch of words!") << '\n';
    cout << words("ONE!!!!") << '\n';
    return 0;
}