C语言实现从终端输入一个文件名,统计该文件中所有出现字符及其个数
时间: 2024-05-02 22:19:13 浏览: 9
好的,这个问题是计算型问题,可以直接回答。您可以使用C语言中的文件操作函数,逐个读取文件中的字符并统计个数,最终输出结果。以下是一个简单的示例代码:
```
#include <stdio.h>
int main()
{
char filename[100];
printf("请输入需要统计字符的文件名:");
scanf("%s", filename);
FILE *fp;
fp = fopen(filename, "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
int count[256] = {0};
char ch;
while ((ch = fgetc(fp)) != EOF) {
count[ch]++;
}
fclose(fp);
printf("字符\t个数\n");
for (int i = 0; i < 256; i++) {
if (count[i] > 0) {
printf("%c\t%d\n", i, count[i]);
}
}
return 0;
}
```
希望能帮到您!
相关问题
由终端键盘输入一个文件名,然后把终端键盘输入的字符依次存放到该文件中,用#号作为结束输入的标志。
### 回答1:
以下是Python的实现代码:
```python
filename = input("请输入文件名:")
with open(filename, 'w') as f:
while True:
char = input()
if char == '#':
break
f.write(char)
```
首先,要求用户输入文件名。然后使用`with open()`语句打开文件,指定模式为写模式(`'w'`)。接着进入一个循环,每次从终端输入一个字符,如果该字符为`#`,则退出循环,否则将该字符写入文件中。最后,关闭文件。
### 回答2:
C语言可以实现由终端键盘输入一个文件名,然后把终端键盘输入的字符依次存放到该文件中的功能。
首先,我们需要使用`scanf`函数接受用户输入的文件名,并将其存储在一个字符数组中:
```c
char filename[100];
printf("请输入文件名:");
scanf("%s", filename);
```
接下来,我们使用`fopen`函数通过文件名创建一个指向文件的指针,并使用`w`模式打开文件,以便将字符写入文件中:
```c
FILE *file = fopen(filename, "w");
```
然后,我们可以使用一个循环来反复接受用户输入的字符,并将其写入文件中,直到用户输入`EOF`结束符(例如按下Ctrl+Z):
```c
printf("请输入字符:");
int ch;
while ((ch = getchar()) != EOF) {
fputc(ch, file);
}
```
最后,我们使用`fclose`函数关闭文件,并释放相关的资源:
```c
fclose(file);
```
完整的代码如下所示:
```c
#include <stdio.h>
int main() {
char filename[100];
printf("请输入文件名:");
scanf("%s", filename);
FILE *file = fopen(filename, "w");
printf("请输入字符:");
int ch;
while ((ch = getchar()) != EOF) {
fputc(ch, file);
}
fclose(file);
return 0;
}
```
这样,用户输入的字符就会依次保存到指定的文件中。
### 回答3:
Python示例代码实现:
```python
# 接受用户输入的文件名
filename = input("请输入要保存的文件名:")
# 打开文件,以追加模式写入内容
with open(filename, "a") as file:
# 循环从终端键盘输入字符
while True:
content = input("请输入要写入文件的内容(输入quit结束):")
if content == "quit":
break
# 将输入的字符写入文件
file.write(content)
file.write("\n")
```
以上示例中,首先使用`input`函数接收用户输入的文件名。然后使用`open`函数以追加模式打开文件,用`with open`语句可以确保文件在使用完毕后正确关闭。接着使用一个无限循环不断接收用户输入的字符,如果输入的字符是"quit",则退出循环。否则,将输入的字符写入文件,并且每写入一行后加上换行符`\n`。这样就实现了将终端键盘输入的字符依次存放到指定的文件中。
编写一个shell脚本,在当前目录中查找包含字符串“struct”的C语言文件,找到文件后将文件名显示,并把该文件内容显示出来。
好的,以下是符合你要求的shell脚本:
```bash
#!/bin/bash
# 查找包含字符串“struct”的C语言文件
files=$(grep -rl "struct" *.c)
# 循环遍历符合条件的文件并输出文件名和文件内容
for file in $files
do
echo "File: $file"
cat $file
done
```
你只需要在要查找的目录下创建一个名为 `find_struct.sh` 的文件,将以上代码复制到文件中,并在终端执行 `./find_struct.sh` 即可。注意,在执行脚本前需要先给脚本添加执行权限,可以使用命令 `chmod +x find_struct.sh` 来添加权限。