2.编写程序,输入任意字符串,统计并输出每个唯一字符以及出现次数,要求按每个唯一字符的出现顺序输出。
时间: 2024-09-28 22:05:49 浏览: 0
2. 编程这个问题可以使用Python语言实现,这里是一个简单的示例:
```python
def count_unique_chars(input_string):
# 创建一个空的字典来存储字符及其出现次数
char_dict = {}
# 遍历输入字符串中的每一个字符
for char in input_string:
# 如果字符已经在字典中,则增加计数
if char in char_dict:
char_dict[char] += 1
# 否则,添加新字符并设置计数为1
else:
char_dict[char] = 1
# 按照字符出现的顺序打印结果
for char, count in sorted(char_dict.items()):
print(f"字符 '{char}' 出现了 {count} 次")
# 获取用户输入的字符串
input_str = input("请输入一个字符串: ")
# 调用函数处理字符串
count_unique_chars(input_str)
```
当你运行这个程序并输入字符串后,会按照字符首次出现的顺序,显示每个字符及其出现的次数。
相关问题
编写程序给定一个任意字符串,查找其中每个字符的最后一次出现,并按每个字符最后一次出现的先后顺序依次存入列表中。
好的,这是一个技术问题,我可以回答。以下是示例代码:
```python
def last_char_index(input_str):
char_dict = {}
for i in range(len(input_str)-1, -1, -1):
if input_str[i] not in char_dict:
char_dict[input_str[i]] = i
result = [input_str[i] for i in sorted(char_dict.values())]
return result
# 测试
input_str = "abcaefg"
print(last_char_index(input_str)) # 输出: ["b", "c", "a", "e", "g", "f"]
```
这个函数被命名为 `last_char_index`,它接受一个字符串作为输入参数,在函数内部会遍历这个字符串,并记录每个字符最后一次出现的位置。最后,按照最后一次出现的顺序将每个字符依次存入一个列表中,并返回该列表。在测试代码中,我们传入了一个字符串 "abcaefg" 并输出了其结果。
对于一个文本文件text1.dat,编写一个程序,将该文件中的每一行字符颠倒顺序后输出到另一个文本文件text2.dat中。 【输入形式】 输入文本文件为当前目录下的text1.dat,该文件含有多行任意字符,也可能有空行。每个文本行最长不超过80个字符。在最后一行的结尾也有一个回车符。 【输出形式】 输出为当前目录下的文本文件text2.dat。.C
以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 80
int main()
{
FILE *fp_read, *fp_write;
char line[MAX_LINE_LENGTH + 1]; // 多预留一个字符存放字符串结尾的'\0'
int len, i, j;
// 打开待读取的文件
fp_read = fopen("text1.dat", "r");
if (fp_read == NULL)
{
printf("Failed to open file text1.dat.");
return 0;
}
// 打开待写入的文件
fp_write = fopen("text2.dat", "w");
if (fp_write == NULL)
{
printf("Failed to open file text2.dat.");
return 0;
}
// 逐行读取待读取文件中的内容
while (fgets(line, MAX_LINE_LENGTH + 1, fp_read))
{
len = strlen(line);
// 去掉行末的回车符
if (len > 0 && line[len - 1] == '\n')
{
line[len - 1] = '\0';
len--;
}
// 将该行字符颠倒顺序后写入待写入文件中
for (i = len - 1; i >= 0; i--)
{
fputc(line[i], fp_write);
}
fputc('\n', fp_write);
}
// 关闭文件
fclose(fp_read);
fclose(fp_write);
return 0;
}
```
该程序逐行读取待读取文件中的内容,并去掉每行末的回车符。然后将该行字符颠倒顺序后写入待写入文件中。最后关闭文件即可。