程序功能: 输入一个字符串,统计字符串中非英文字母的字符个数并输出。英文字母包括大写和小写英文字母. [输入格式]在一行中输入不超过80个字符长度的、以回车结束的非空字符串。 [输出格式] 在一行中输出字符串中非英文字母的字符个数。 [入样] Hello World! [输出样例] 6 [函数定义要求]请在该程序文件中,实现函数int fnlet (char str),统计字符串str中非英文字母的字符个数,并作为函数的返回结果.,补全代码#include <stdio.h> int fnlet(char str[]); int main(void) { char str[80]; gets(str); printf("%d",fnlet(str)); return 0; } /*考生在以下空白处定义函数*/ /*考生在以上空白处定义函数*/
时间: 2024-03-05 10:54:07 浏览: 139
补全代码如下:
```c
#include <stdio.h>
int fnlet(char str[]);
int main(void) {
char str[80];
gets(str);
printf("%d", fnlet(str));
return 0;
}
int fnlet(char str[]) {
int cnt = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (!(str[i] >= 'a' && str[i] <= 'z') && !(str[i] >= 'A' && str[i] <= 'Z')) {
cnt++;
}
}
return cnt;
}
```
该程序先读入一个字符串,然后在函数fnlet中遍历字符串,如果当前字符不是英文字母,则计数器cnt加一。最后将cnt作为函数的返回值。在主函数中调用fnlet函数,将返回值输出即可。需要注意的是,本题中输入的字符串可能包含空格,因此不能使用scanf函数读入字符串,而应使用gets函数。
相关问题
c语言输入一个字符串,统计字符串中非英文字母的字符个数并输出
好的,以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count = 0;
printf("请输入一段字符串:");
fgets(str, sizeof(str), stdin); // 读取整行字符串
str[strlen(str)-1] = '\0'; // 去掉末尾的换行符
for (int i = 0; str[i]; i++) {
if ((str[i] < 'A' || str[i] > 'Z') && (str[i] < 'a' || str[i] > 'z')) {
count++;
}
}
printf("非英文字母的字符个数为:%d\n", count);
return 0;
}
```
这段代码通过fgets函数读取用户输入的一行字符串,然后遍历字符串中的每个字符,判断是否为英文字母。如果不是,则累加非英文字母的字符个数,最后输出总数。请注意,代码中使用了字符的ASCII码值进行比较,因此不仅包括了常见的标点符号,还包括了空格、数字等非英文字母的字符。
输入一个字符串,统计字符串中非英文字母的字符个数并输出
可以使用Python进行实现,代码如下:
```python
import re
str = input("请输入字符串:")
result = re.findall('[^a-zA-Z]', str) # 找出非英文字母的字符
count = len(result) # 统计个数
print("非英文字母的字符个数为:", count)
```
输入一个字符串后,程序会通过正则表达式找出非英文字母的字符,并统计其个数输出。