【每日编程-391期】西北大学上机题(九)

教育   2024-12-20 10:04   广西  

西北大学上机题(九)


每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399



字符串处理-4-单词统计。

给定一个字符串,请计算其中一共包含多少个单词(假设连续的非空格字母即为一个单词)。

输入格式:

输入数据是一个长度为S(0<s<1000)的字符串,其中只包含字母和空格。< p=""></s<1000)的字符串,其中只包含字母和空格。<>

输出格式:

请输出给定字符串一共包含的单词数。

输入样例:

Welcome to NWU

输出样例:

3

解决方法:

(1)算法的基本思想:

连续的非空格字符即为一个单词,我们只需要找到单词的边界就能确定单词的个数。每个单词的开始是非空格字符,开始到末尾之间都是非空格字符,而末尾的下一个字符是空格字符或者’\0’。所以,当我们找到一个当前位置为空格字符(或’\0’),而前一个为非空格字符的位置,即找到了一个单词。

(2)代码实现:

#include 
#include 
using namespace std;
int countWords(string s);
int main(void)
{
    string s;
    cout << "请输入字符串:" << endl;
    getline(cin, s);
    cout << countWords(s) << endl;
    return 0;
}
int countWords(string s)
{
    int tag = 0//标记上一个字符是否是字母,1表示是,0表示不是
    int result = 0;
    for (int i = 0; i <= s.length(); i++)
    {
        if (s[i] != ' ' && s[i] != '\0')
        { //当前是非空格字符
            tag = 1;
        }
        else if (tag == 1)
        { //当前是空格字符,且前一个字符是非空格字符,即找到了一个单词
            result++;
            tag = 0;
        }
    }
    return result;
}

明日预告:哈工大上机题(一)

解密——加密的算法是26个英文字母,向后移三位为密文(a加密为d…最后x->a;y->b;z->c)有大小写。输入密文,计算明文。

输入格式:

输入密文

输出格式:

输出明文

输入样例:

An asdwa lijxa

输出样例:

Xk xpatx ifgux


灰灰考研
最全的【计算机考研】【软件考研】考研信息! 最丰富的共享资料! 最大程度上帮助学渣狗登上研究生大门!
 最新文章