问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问c语言中关于字符替换字符串的问题?

发布网友 发布时间:2022-04-22 18:03

我来回答

5个回答

热心网友 时间:2023-11-14 21:41

1、首先输入代码:

#include <string.h>

#include <stdio.h>

 

/**

 * 参数:

 * originalString[] :原始字符串

 * key[] : 待替换的字符串

 * swap[] : 新字符串

 */

void replace(char originalString[], char key[], char swap[]){

int lengthOfOriginalString, lengthOfKey, lengthOfSwap, i, j , flag;

char tmp[1000]; 

 

2、然后输入:

//获取各个字符串的长度

lengthOfOriginalString = strlen(originalString);

lengthOfKey = strlen(key);

lengthOfSwap = strlen(swap);

 

for( i = 0; i <= lengthOfOriginalString - lengthOfKey; i++){

flag = 1;

//搜索key

for(j  = 0; j < lengthOfKey; j ++){

if(originalString[i + j] != key[j]){

flag = 0; 

break;

}

}

3、然后输入:

//如果搜索成功,则进行替换

if(flag){

strcpy(tmp, originalString);

strcpy(&tmp[i], swap);

strcpy(&tmp[i + lengthOfSwap], &originalString[i  + lengthOfKey]);

strcpy(originalString, tmp);

i += lengthOfSwap - 1;

lengthOfOriginalString = strlen(originalString);

}

}

}

 4、然后输入:

/**

 * main function

 */

int main(){ 

char originalString[1000] = {"abcfffffabcfffffabcfffff"};

char key[] = {"abc"};

char swap[] = {"aabbcc"}; 

replace(originalString, key, swap);

printf("%s\n", originalString); 

return 0;

}

5、这样就完成了。

热心网友 时间:2023-11-14 21:42

#include <stdio.h>
#include <string.h>
#include <malloc.h>

// 将strRes中的t替换为s,替换成功返回1,否则返回0。
int StrReplace(char strRes[],char from[], char to[]) {
int i,flag = 0;
char *p,*q,*ts;
for(i = 0; strRes[i]; ++i) {
if(strRes[i] == from[0]) {
p = strRes + i;
q = from;
while(*q && (*p++ == *q++));
if(*q == '\0') {
ts = (char *)malloc(strlen(strRes) + 1);
strcpy(ts,p);
strRes[i] = '\0';
strcat(strRes,to);
strcat(strRes,ts);
free(ts);
flag = 1;
}
}
}
return flag;
}

int main() {
char str[80] = "098123asd098opu";
printf("替换前:%s\n",str);
if(StrReplace(str,"098","33210")) printf("替换后:%s\n",str);
else printf("没有任何替换。\n");
return 0;
}

热心网友 时间:2023-11-14 21:42

原理相同。。找到关键字词。。可以使用strstr()库函数。。使用STRCPY替换函数。。但是要考虑替换单词长度和被替换单词长度。。做好其他字符串的移位和字符串长度变化的空间分配与回收。追问高手 留步!请问可否在此程序的基础上将句子中的 “am ”换成“by”呢??

追答可以使用strstr函数查找am。。找到后会返回AM字串第一次出现的位置。。然后替换就行了。使用STRCPY的话可能会拷贝到字符串"BY\0" 的结束附。。可以考虑挨个赋值或者是单独对结束符进行处理。

热心网友 时间:2023-11-14 21:43

就是复杂了点:
#include<stdio.h>
#define N 100
void main()
{
char a[N]="abcdefg";
char b;
char c[N];
char d[N];
int i,j,k;
printf("输入要插入的字符串:\n");
gets(c);
printf("要插入的位置:\n");
scanf("%s",&b);
for(i=0;a[i]!='\0';i++)
{
if(a[i]==b)
{
k=i+1;
break;
}
}
for(j=0;a[i]!='\0';j++,i++)
{
d[j]=a[i+1];
}
d[j]='\0';
for(i=k,j=0;c[j]!='\0';i++,j++)
{
a[i]=c[j];
}
for(k=0;d[k]!='\0';k++)
{
a[i++]=d[k];
}
a[i]='\0';
printf("结果是:\n");
puts(a);
getch();

}

热心网友 时间:2023-11-14 21:44

#include<string.h>
用strcpy函数追问大哥 可否在原程序上修改呢

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
圣斗士星矢正义传说攻略_圣斗士星矢正义传说新手攻略 圣斗士星矢正义传说怎么觉醒圣衣 圣衣玩法攻略 圣斗士星矢正义传说召唤石怎么获得 获取攻略一览 超市促销员手机上打卡迟到几分钟 在超市里打卡显示的公司是什么意思? 长鹿休闲度假农庄交通指南 求从容桂到长鹿农庄怎么坐车,详细,准确 形容神情的五字词语 女生内衣穿多久该扔掉 吴江离张家港有多远? C语言文本中字符串的查找和替换 C语言文件中字符串的查找与替换 请帮帮忙,c语言字符串替换。非常感谢! 广州市青图文化传播有限公司怎么样? C语言不用指针如何用一个字符串代替另一个字符串 谁帮我用C语言,写一个字符串替换函数, 五四星级社团表彰晚会创意策划书 C语言 字符串替换replace() 求加每句注释...........谢谢. ....没分了,有分了追加.... C语言 指针,字符串替换 如何举办一个具有创意的年会?找亿蜂行不 C语言字符替换 一场大型活动策划需要准备的设备,材料有哪些 c语言:如何将字符串中指定的字符替换为另一个指定字符 简单的C语言字符串替换问题—— C语言字符串替换代码 c语言:如何将字符串中指定的字符替换为另一个指定字符 关于感动人物的学校颁奖典礼方案 在 C语言中字符串的替换如何实现的! C语言字符串替换 C语言字符串替换如何做? C语言字符串替换用‘?’换“ ” C语言显示替换后的字符串 qq管理员有啥用?和群主又有哪些区别? 职称评定 农村宅基地拆迁谈判的技巧和经验有哪些 小学老师的职责和要求 拆迁过程中有哪些要注意的问题 怎样考取拆迁岗位证书 小学语文教师岗位职责 村里要动迁的前兆 二年级语文老师职责有哪些 拆迁 如何利益最大化 小学教师的职责是 404 Not Found 拆迁过程涉及哪些工作 小学科学老师在学校有哪些工作 企业拆迁律师:面临拆迁,企业主应该做哪些 小学二级教师进小学一级教师需要哪些条件 房屋拆迁工作汇报总结 谁有征地拆迁资金审计的经验?