编写c语言程序,在一个指定文件中查找某一字符串,将查找到的字符串用双引号括起来进行标记。注意:要查找的字符串若有多个,均要被标记。
1个回答
关注
展开全部
亲亲,下面是一个简单的C程序,可以在指定文件中查找指定字符串并用双引号进行标记:```c#include #include #define MAXLEN 512 // 文件中每一行的最大长度int main(){ char filename[50], find_str[50]; char line[MAXLEN]; // 用于存储文件中的一行字符串 int len, pos, i; printf("请输入文件名:"); scanf("%s", filename); printf("请输入要查找的字符串:"); scanf("%s", find_str); FILE* fp = fopen(filename, "r"); // 以只读方式打开文件 if (fp == NULL) { printf("无法打开文件!\n"); return 1; } // 依次读取文件中的每一行 w
咨询记录 · 回答于2023-05-17
编写c语言程序,在一个指定文件中查找某一字符串,将查找到的字符串用双引号括起来进行标记。注意:要查找的字符串若有多个,均要被标记。
编写c语言程序,在一个指定文件中查找某一字符串,将查找到的字符串用双引号括起来进行标记。注意:要查找的字符串若有多个,均要被标记。
亲亲,下面是一个简单的C程序,可以在指定文件中查找指定字符串并用双引号进行标记:```c#include #include #define MAXLEN 512 // 文件中每一行的最大长度int main(){ char filename[50], find_str[50]; char line[MAXLEN]; // 用于存储文件中的一行字符串 int len, pos, i; printf("请输入文件名:"); scanf("%s", filename); printf("请输入要查找的字符串:"); scanf("%s", find_str); FILE* fp = fopen(filename, "r"); // 以只读方式打开文件 if (fp == NULL) { printf("无法打开文件!\n"); return 1; } // 依次读取文件中的每一行 w
// 依次读取文件中的每一行 while (fgets(line, MAXLEN, fp) != NULL) { len = strlen(line); pos = 0; while ((pos = strstr(line + pos, find_str) - line) != -1) { // 找到了要查找的字符串,对其进行标记 printf("\""); for (i = 0; i < strlen(find_str); i++) { printf("%c", line[pos + i]); } printf("\""); pos += strlen(find_str); } printf("%s", line); } fclose(fp); re
该程序首先读取用户输入的文件名和要查找的字符串。然后,读取指定文件中每一行的字符串,并在其中查找要查找的字符串。如果找到了该字符串,就在其前后加上双引号进行标记,然后输出该行字符串。如果未找到该字符串,直接输出该行字符串。最后关闭文件并退出程序。
亲亲,以下是Python代码实现,可以将未排版的电影参演人员名单文件istn.tot排版为规定格式,并将结果输出到另一个文件istoutt中:```python# 打开输入文件with open('istn.tot') as f: # 读取整数作为排版后富号:的位置 colon_pos = int(input()) # 打开输出文件 with open('istoutt', 'w') as fout: # 逐行读取输入文件 for line in f: # 去除行首和行尾的空白符 line = line.strip() # 将行按冒号:分成前后两部分 parts = line.split(':') # 得到名字和角色两部分 name = parts[0].strip() role = parts[1].strip() #
# 得到名字和角色两部分 name = parts[0].strip() role = parts[1].strip() # 计算左右两边单词的长度 left_len = colon_pos - len(role) - 2 right_len = len(line) - len(name) - len(role) - 2 # 左边需要填充的空格数 left_spaces = max(left_len - len(name), 0) # 右边需要填充的空格数 right_spaces = max(right_len - 1, 0) # 将左边的单词串以置号为基准右对齐 left_aligned = ' ' * left_spaces + name # 将右边的单词串以冒号
right_spaces = max(right_len - 1, 0) # 将左边的单词串以置号为基准右对齐 left_aligned = ' ' * left_spaces + name # 将右边的单词串以冒号为基准左对齐 right_aligned = role + ' ' * right_spaces + '\n' # 将左右两部分拼接起来,用一个冒号:分隔 formatted_line = left_aligned + ' :' + right_aligned # 将排版后的行写出到输出文件istoutt中 fout.write(formatted_line)```这个程序将文件istn.tot中的每一行都按照指定的排版格式处理后输出到文件istoutt中,输出文件中的每行都按照如下规定格式排列:1. 在指定富号:位置左边的单词串以置号为基准右
1. 在指定富号:位置左边的单词串以置号为基准右对齐,左边的第一个单词之前如果有多余的位置,则用空格填充。2. 冒号:右边的单词串以冒号:为基准左对齐,单词之间只有一个空格分隔,最后一个单词之后不再有任何字符,不足部分用空格填充。
有C语言的吗
以下是Python 3的实现方式:```def format_actor_list(input_file, output_file, colon_pos): with open(input_file, 'r') as f_in, open(output_file, 'w') as f_out: for line in f_in: # 移除行末的换行符 line = line.strip() # 根据冒号位置分割行 parts = line.split(":") if len(parts) != 2: continue # 如果行不符合规则,则跳过 left_part, right_part = parts # 左侧单词串右对齐 left_words = left_part.split() left_word_c
line = line.strip() # 根据冒号位置分割行 parts = line.split(":") if len(parts) != 2: continue # 如果行不符合规则,则跳过 left_part, right_part = parts # 左侧单词串右对齐 left_words = left_part.split() left_word_count = len(left_words) left_spaces = " " * (colon_pos - left_word_count) left_part_formatted = left_spaces + " ".join(left_words) # 右侧单词串左对齐 right_words = right_part.
# 右侧单词串左对齐 right_words = right_part.split() right_part_formatted = " ".join(right_words[:-1]) + ":\n" right_part_last_word = right_words[-1] # 组装最终行并写入输出文件 formatted_line = left_part_formatted + " : " + right_part_formatted f_out.write(formatted_line) # 如果右侧单词串的最后一个单词不完整,则另起一行 if len(right_part_last_word) + 3 > colon_pos: new_line = " "*colon_pos + right_part_last_word + "\n"
f_out.write(new_line)input_file = "istn.tot"output_file = "istoutt.txt"colon_pos = int(input("Enter colon position: "))format_actor_list(input_file, output_file, colon_pos)```解释:
解释:1. 使用Python自带的文件读写函数open()打开输入文件和输出文件。2. 对输入文件的每一行进行处理。3. 使用strip()方法移除行末的换行符。4. 使用split()方法根据冒号位置分割行。如果分割出单词数不为2,则跳过当前行。5. 对左侧单词串进行右对齐处理,右侧单词串进行左对齐处理。6. 组装排版好的行,并使用write()方法写入输出文件。7. 如果右侧单词串的最后一个单词过长无法在当前行放下,则另起一行。8. 关闭输入文件和输出文件。