统计输入单词的个数

C++动态字典实现

struct Pair
{
 string name;
 double val;
};

vector<Pair>pairs;

double& value(const string&s)
{
 for(int i = 0; i < pairs.size(); ++i)
  if( s == pairs[i].name) return pairs[i].val;

 Pair p = {s,0};
 pairs.push_back(p);

 return pairs[pairs.size() - 1].val;
}


int main()
{
 string buf;
 
 while(cin>>buf && buf != "exit") value(buf)++;

 for( vector<Pair>::const_iterator p = pairs.begin(); p!= pairs.end(); ++p)
  cout<<p->name<<":"<<p->val<<"/n";
 
 system("pause");

 return 0;

统计输入字符串中单词个数有多种方法,以下分别介绍不同编程语言的实现方式: #### Python 语言 可以使用`split()`方法将字符串按空格分割成列表,列表的长度即为单词个数。 ```python s = input("请输入字符串:") words = s.split() count = len(words) print("单词个数为:", count) ``` 也可以根据从空格到非空格的跳变次数来统计单词数,在原字符串前加一个空格,字符串中该跳变的次数就是单词的数目,用`flag`表示当前字符是否是空格,`flag`从`True`到`False`的跳变就是一次跳变[^3]。 ```python s = input("请输入字符串:") s = " " + s flag = True count = 0 for i in range(len(s)): if s[i] != " " and flag: count = count + 1 flag = False elif s[i] == " ": flag = True print("单词个数为:", count) ``` #### C 语言 通过遍历字符串,根据字符是否为空格来判断单词的起始和结束,从而统计单词个数[^1]。 ```c #include <stdio.h> int main() { printf("请输入:\n"); char string[81]; gets(string); int i, word = 0, num = 0; char c; for (i = 0; (c = string[i]) != '\0'; i++) { if (c == ' ') { word = 0; } else { if (word == 0) { num = num + 1; word = 1; } } } printf("单词个数为:%d", num); return 0; } ``` #### Java 语言 使用`for`循环语句遍历整个字符串,用`if`条件语句判断当前字符是否表示一个单词的结束,如果当前字符表示一个单词结束,则存放单词个数的变量加 1,最后返回单词个数[^2]。 ```java public class WordCount { public static void main(String[] args) { String s = "Please input a string"; int count = 0; boolean isWord = false; for (int i = 0; i < s.length(); i++) { if (Character.isWhitespace(s.charAt(i))) { isWord = false; } else { if (!isWord) { count++; isWord = true; } } } System.out.println("单词个数为:" + count); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值