c++统计单词中不同字母的个数
时间: 2023-05-02 13:06:40 浏览: 160
假设现在要统计单词"hello"中不同字母的个数,那么我们需要先将这个单词中的每一个字母都拆分开,也就是"h"、"e"、"l"、"l"、"o",然后再进行去重操作,也就是将重复的字母去掉。
去重操作可以通过列表(List)的特性来实现,我们可以定义一个空列表,然后遍历单词中每一个字母,如果这个字母不在列表里面,就将它添加到列表中。最后,统计列表中元素的个数,这个个数就是单词中不同字母的个数。
直接上代码:
word = "hello"
unique_letters = [] # 定义空列表
for letter in word:
if letter not in unique_letters:
unique_letters.append(letter)
print(len(unique_letters)) # 输出不同字母的个数
上述代码输出的结果为"4",也就是单词"hello"中不同字母的个数为4个。
相关问题
请使用C/C++编写字母统计程序。要求统计给定(英文)文本文件中,各个字母出现的个数,以及单词个数和P(p)开头的单词数
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *fp;
char filename[100], c;
int letter_count[26] = {0};
int word_count = 0, p_word_count = 0;
int in_word = 0;
// 获取文件名
printf("请输入要统计的文件名:");
scanf("%s", filename);
// 打开文件
fp = fopen(filename, "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
// 逐个读取字符并统计
while ((c = fgetc(fp)) != EOF) {
if (isalpha(c)) { // 如果是字母
c = tolower(c); // 统一转为小写
letter_count[c - 'a']++; // 统计该字母出现次数
if (!in_word) { // 如果不在单词中
in_word = 1; // 进入单词
word_count++; // 单词数+1
if (c == 'p') { // 如果单词以P(p)开头
p_word_count++; // P(p)开头单词数+1
}
}
} else { // 如果不是字母
in_word = 0; // 退出单词
}
}
// 输出结果
printf("各个字母出现的个数:\n");
for (int i = 0; i < 26; i++) {
printf("%c: %d\n", 'a' + i, letter_count[i]);
}
printf("单词个数:%d\n", word_count);
printf("以P(p)开头的单词数:%d\n", p_word_count);
// 关闭文件
fclose(fp);
return 0;
}
用DEVc++写:输入一行英文单词序列,单词是指连续不含空格的字符串,各单词之间用空格分开,空格数可以是多个。 1.对应地计算每个单词的长度; 2.将每个单词的首字母改为大写后输出; 3.统计其中单词的个数。
ChitGPT: 你好,很高兴为您服务。以下是您提出的问题的答案:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char str[100];
int len, cnt = 0;
printf("请输入英文单词序列:\n");
fgets(str, 100, stdin); // 读入字符串
len = strlen(str);
// 对应地计算每个单词的长度
printf("每个单词的长度为:\n");
for (int i = 0; i < len; i++) {
if (str[i] == ' ') {
printf("\n");
} else {
printf("%c", str[i]);
}
}
// 将每个单词的首字母改为大写后输出
printf("\n\n将每个单词的首字母改为大写后输出:\n");
for (int i = 0; i < len; i++) {
if (i == 0 || str[i-1] == ' ') {
printf("%c", toupper(str[i]));
} else {
printf("%c", str[i]);
}
}
// 统计其中单词的个数
printf("\n\n单词的个数为:\n");
for (int i = 0; i < len; i++) {
if (str[i] == ' ') {
cnt++;
}
}
printf("%d", cnt+1);
return 0;
}
阅读全文