c语言如何识别名称第一个字首字母
时间: 2023-04-05 07:04:57 浏览: 171
C语言可以通过使用字符数组和字符串函数来识别名称的第一个字母。可以使用字符串函数中的strtok()函数来将字符串分割成单个字符,然后使用字符数组来存储每个字符,最后使用条件语句来判断第一个字符是否为所需的字母。
相关问题
编写程序,输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则 继续判断第二个字母。[难度等级:大学用c语言实现
在C语言中,编写一个这样的程序需要使用条件语句和字符数组来对应每个星期的首字母及其完整的名称。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input;
printf("请输入一个星期的第一字母(如'M'代表Monday): ");
scanf("%c", &input);
char days[] = {"S", "M", "T", "W", "Th", "F", "Sa"}; // 保存每个英文星期的前两个字母
int index;
for (index = 0; index < 7; index++) { // 遍历所有可能性
if (input == days[index]) { // 如果输入的第一个字母匹配
if (index == 6) { // 如果是周六"Sa",直接结束
printf("It's Saturday!\n");
break;
} else if (days[index+1] != '\0') { // 否则检查下一个字母是否也匹配
printf("The full day is %s.\n", days[index]); // 输出完整的一天
break;
}
}
}
return 0;
}
C语言。函数名称:statisticsFromFile *函数功能:读取文件并分类统计字符个数,统计结果保存在形参数组num中形式参数:int*,一维整型数组首地址 *形式参数:char ※fileName,文件路径及名称 *形式参数:char*mode,文件使用方式 *返回值:int型,若文件打开异常,返回-1;否则返回读取文件的字符数 */ int statisticsFromFile(int *num, char *fileName, char *mode){ //请编程实现本函数 【输入形式】 文件输入:事先创建“ex802.txt”文件并录入任意字串作为文件输入内容 【输出形式】 标准输出:在显示器中有3行输出 第1行:字母个数 第2行:数字个数 第3行:其他字符个数 【样例输入】 ksiwkslapUWJ827301*&!@&&^%*! 【样例输出】 letter:12 number:6
下面是一个简单的实现,可以读取指定的文件并进行分类统计后保存在传入的一维整型数组中:
```c
#include <stdio.h>
#include <ctype.h>
int statisticsFromFile(int *num, char *fileName, char *mode) {
FILE *fp;
int letter = 0, number = 0, other = 0, ch;
fp = fopen(fileName, mode);
if (fp == NULL) {
return -1;
}
while ((ch = fgetc(fp)) != EOF) {
if (isalpha(ch)) {
letter++;
} else if (isdigit(ch)) {
number++;
} else {
other++;
}
}
fclose(fp);
num[0] = letter;
num[1] = number;
num[2] = other;
return letter + number + other;
}
```
这个函数接收三个参数:保存统计结果的一维整型数组、文件名和打开文件的模式。函数首先尝试打开文件,如果打开失败则返回-1。如果文件成功打开,函数遍历文件中的每个字符,如果是字母则字母计数器加1,如果是数字则数字计数器加1,否则其他字符计数器加1。然后关闭文件并将计数结果保存在传入的数组中。最后返回文件中读取的字符数。
调用该函数后,可以通过访问传入的数组元素来获取字母、数字、其他字符的个数。例如:
```c
int num[3];
int count = statisticsFromFile(num, "ex802.txt", "r");
printf("letter:%d number:%d other:%d\n", num[0], num[1], num[2]);
```
上面的代码可以输出类似这样的结果:
```c
letter:12 number:6 other:3
```