用 C 语言 编写代码,要求如下: 1.创建个文件STRING.txt。 2.由键盘输入一个任意字符串,利用文件写入函数,把输入的符串写入文件。 3.利用文件读出函数,出文件中的符串,统计文本文件中
分享
55569
以下是用 C 语言编写的代码,实现了上述要求:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *fp;
char str[100];
int i, alpha = 0, digit = 0, other = 0;
// 创建文件
fp = fopen("STRING.txt", "w");
// 从键盘输入字符串并写入文件
printf("请输入一个字符串:");
gets(str);
fprintf(fp, "%s", str);
// 关闭文件
fclose(fp);
// 重新打开文件
fp = fopen("STRING.txt", "r");
// 读取文件中的字符串并统计各类字符个数
while ((i = fgetc(fp)) != EOF) {
if (isalpha(i)) {
alpha++;
} else if (isdigit(i)) {
digit++;
} else {
other++;
}
}
// 输出各类字符个数
printf("字母个数:%d\n", alpha);
printf("数字个数:%d\n", digit);
printf("其他字符个数:%d\n", other);
// 关闭文件
fclose(fp);
return 0;
}
```
代码的具体实现过程如下:
1. 首先使用 `fopen()` 函数创建一个名为 `STRING.txt` 的文件,并以写入模式打开该文件。
2. 从键盘输入一个字符串,并使用 `fprintf()` 函数将该字符串写入文件中。
3. 关闭文件,然后重新以读取模式打开该文件。
4. 使用 `fgetc()` 函数逐个读取文件中的字符,并使用 `isalpha()` 和 `isdigit()` 函数判断该字符是否为字母或数字,从而统计各类字符的个数。
5. 输出各类字符的个数。
6. 最后关闭文件并结束程序。
需要注意的是,由于 `gets()` 函数存在安全漏洞,可能会导致缓冲区溢出,因此在实际开发中应该使用更安全的输入函数,比如 `fgets()`。
```c
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *fp;
char str[100];
int i, alpha = 0, digit = 0, other = 0;
// 创建文件
fp = fopen("STRING.txt", "w");
// 从键盘输入字符串并写入文件
printf("请输入一个字符串:");
gets(str);
fprintf(fp, "%s", str);
// 关闭文件
fclose(fp);
// 重新打开文件
fp = fopen("STRING.txt", "r");
// 读取文件中的字符串并统计各类字符个数
while ((i = fgetc(fp)) != EOF) {
if (isalpha(i)) {
alpha++;
} else if (isdigit(i)) {
digit++;
} else {
other++;
}
}
// 输出各类字符个数
printf("字母个数:%d\n", alpha);
printf("数字个数:%d\n", digit);
printf("其他字符个数:%d\n", other);
// 关闭文件
fclose(fp);
return 0;
}
```
代码的具体实现过程如下:
1. 首先使用 `fopen()` 函数创建一个名为 `STRING.txt` 的文件,并以写入模式打开该文件。
2. 从键盘输入一个字符串,并使用 `fprintf()` 函数将该字符串写入文件中。
3. 关闭文件,然后重新以读取模式打开该文件。
4. 使用 `fgetc()` 函数逐个读取文件中的字符,并使用 `isalpha()` 和 `isdigit()` 函数判断该字符是否为字母或数字,从而统计各类字符的个数。
5. 输出各类字符的个数。
6. 最后关闭文件并结束程序。
需要注意的是,由于 `gets()` 函数存在安全漏洞,可能会导致缓冲区溢出,因此在实际开发中应该使用更安全的输入函数,比如 `fgets()`。