输入一串字符,以“#”结束,输出其中小写字母个数、大写字母个数以及数字个数。
时间: 2023-10-03 09:06:23 浏览: 105
”结尾的字符串,并统计其中有多少个英文单词。
首先,需要明确英文单词的定义。英文单词指的是由字母组成的,有独立含义的词语。在该字符串中,可以通过空格或者标点符号来确定单词的边界。
遍历字符串,遇到一个字母时,就进入单词的遍历状态,同时设定一个标志位。当遇到空格或者标点符号时,如果此时标志位为真,说明一个单词遍历结束。将单词计数器加一,并将标志位置为假。如果遇到空格或者标点符号时标志位为假,则说明这个字符不是单词的一部分,无需进行计数。
最后,输出统计结果即可。
相关问题
用c语言输入一串字符,以“#”结束,输出其中小写字母个数、大写字母个数以及数字个数。
”为分隔符,将每个子串分别存入一个字符串数组中。
您好,以下是c语言代码实现您描述的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[100], substr[20][20]; // str用于存储输入的原始字符串,substr用于存储分割后的子串
int i, j, k = 0, len; // i、j、k、len均为循环遍历或处理字符串的计数变量
printf("请输入一串字符:");
gets(str); // 使用gets函数获取一行字符串
len = strlen(str); // 获取原始字符串的长度
for (i = 0; i <= len; i++) {
if (str[i] != '\n' && str[i] != '\r' && str[i] != '\0' && str[i] != ' ') {
// 判断当前字符是否为分割符,若不是则将其添加到子串中
substr[k][j] = str[i];
j++;
} else if (j != 0) {
// 若当前字符为分割符且当前子串不为空,则将子串添加到substr中
substr[k][j] = '\0';
k++;
j = 0;
}
}
for (i = 0; i < k; i++) {
printf("第%d个子串为:%s\n", i + 1, substr[i]);
}
return 0;
}
```
以上代码中,我们首先通过`gets()`函数获取一行字符串,然后通过`strlen()`函数获取该字符串的长度。
接着,我们利用循环遍历字符串,将每个分割后的子串存储到二维字符串数组`substr`中。
最后,我们再次循环输出该数组中的每个子串。
PS:gets函数属于不安全的函数,尽量避免使用。
输入一个长度小于100的字符串统计其中大写字母小写字母数字以及其他字符的个数
以下是Python的解法:
```python
s = input("请输入一个字符串:")
uppercase = lowercase = digit = other = 0
for c in s:
if c.isupper():
uppercase += 1
elif c.islower():
lowercase += 1
elif c.isdigit():
digit += 1
else:
other += 1
print(f"大写字母有{uppercase}个,小写字母有{lowercase}个,数字有{digit}个,其他字符有{other}个")
```
以上程序中,通过`input()`函数获取用户输入的字符串,然后循环遍历每个字符,通过字符串方法`isupper()`、`islower()`、`isdigit()`判断其是否为大写字母、小写字母、数字,如果不是,则归为其他字符。最后输出统计结果。