在编辑文档时,对于出现频率很高又难于输入的字符串经常可以用一个特殊的短字符串代替输入,待文档完成时再替换回来。 如:在输入“武汉理工大学”时,可以用"whut"代替,编程完成这种替换。
时间: 2023-04-01 08:04:14 浏览: 172
字符串的替换
可以使用字符串替换函数来实现这个功能,例如在 C 语言中可以使用函数str_replace()。具体实现方法如下:
1. 定义两个字符串变量,一个用于存储原始字符串,一个用于存储替换后的字符串。
2. 使用fgets()函数从标准输入中读取原始字符串。
3. 使用str_replace()函数将原始字符串中的特定字符串替换为短字符串。
4. 将替换后的字符串输出到标准输出。
下面是一个示例代码:
#include <stdio.h>
#include <string.h>
char* str_replace(char* orig, char* rep, char* with) {
char* result; // 替换后的字符串
char* ins; // 插入位置
char* tmp; // 临时变量
int len_rep; // 替换字符串的长度
int len_with; // 替换后的字符串的长度
int len_front; // 前缀字符串的长度
int count; // 计数器
if (!orig || !rep) {
return NULL;
}
len_rep = strlen(rep);
if (len_rep == ) {
return NULL;
}
if (!with) {
with = "";
}
len_with = strlen(with);
ins = orig;
for (count = ; tmp = strstr(ins, rep); ++count) {
ins = tmp + len_rep;
}
tmp = result = malloc(strlen(orig) + (len_with - len_rep) * count + 1);
if (!result) {
return NULL;
}
while (count--) {
ins = strstr(orig, rep);
len_front = ins - orig;
tmp = strncpy(tmp, orig, len_front) + len_front;
tmp = strcpy(tmp, with) + len_with;
orig += len_front + len_rep;
}
strcpy(tmp, orig);
return result;
}
int main() {
char orig[100]; // 原始字符串
char rep[100]; // 要替换的字符串
char with[100]; // 替换后的字符串
printf("请输入原始字符串:");
fgets(orig, sizeof(orig), stdin);
orig[strcspn(orig, "\n")] = ; // 去掉换行符
printf("请输入要替换的字符串:");
scanf("%s", rep);
printf("请输入替换后的字符串:");
scanf("%s", with);
char* result = str_replace(orig, rep, with);
printf("替换后的字符串为:%s\n", result);
free(result);
return ;
}
阅读全文